複数のテーブルを結合してデータを抽出する方法について、基本から応用まで解説します。実際のプロジェクトでよく使う3つのテーブル結合のテクニックとは?
SQLで2つのテーブルを結合して一致データを抽出する方法
SQLでテーブル結合を使って一致するデータを抽出する方法について、具体的なサンプルコードと共に解説します。初心者でも理解できる内部結合から応用的な外部結合まで、実践的な使い方を学んでみませんか?
内部結合(INNER JOIN)は、2つのテーブル間で一致するデータのみを抽出する最も基本的な方法です。以下のような構文で使用します:
SELECT カラム名
FROM テーブル1
INNER JOIN テーブル2
ON テーブル1.キー列 = テーブル2.キー列
具体例として、従業員テーブルと部署テーブルを結合する場合を見てみましょう:
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.department_id
外部結合(OUTER JOIN)には、LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOINの3種類があります。これらは一致しないデータも含めて抽出したい場合に使用します。
例えば、LEFT OUTER JOINを使用すると、以下のように記述できます:
SELECT customers.customer_name, orders.order_date
FROM customers
LEFT OUTER JOIN orders
ON customers.customer_id = orders.customer_id
結合時には、複数の条件を組み合わせることができます。ONとWHEREを使い分けることで、より精密な抽出が可能です:
SELECT *
FROM テーブル1
INNER JOIN テーブル2
ON (条件1 AND 条件2)
WHERE 条件3
3つ以上のテーブルを結合する場合は、以下のように記述します:
SELECT 列名
FROM テーブル1
INNER JOIN テーブル2
ON テーブル1.キー = テーブル2.キー
INNER JOIN テーブル3
ON テーブル2.キー = テーブル3.キー
大規模なデータベースでテーブル結合を行う際は、以下の点に注意が必要です:
-- パフォーマンスを考慮した結合の例
SELECT t1.id, t1.name, t2.value
FROM table1 t1
INNER JOIN table2 t2
ON t1.id = t2.id
WHERE t1.active = 1