SQLで2つのテーブルを結合して一致データを抽出する方法

SQLでテーブル結合を使って一致するデータを抽出する方法について、具体的なサンプルコードと共に解説します。初心者でも理解できる内部結合から応用的な外部結合まで、実践的な使い方を学んでみませんか?

SQLで2つのテーブルから一致データを抽出する

テーブル結合の基本知識
📊
結合の種類

内部結合、外部結合、クロス結合の3種類があります

🔍
結合のポイント

キーとなるカラムの選択が重要です

💡
活用シーン

複数テーブルのデータを組み合わせて分析する際に使用します

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

SQLの外部結合による柔軟なデータ抽出方法

外部結合(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

SQLでテーブル結合時の条件指定とフィルタリング

結合時には、複数の条件を組み合わせることができます。ONとWHEREを使い分けることで、より精密な抽出が可能です:


SELECT *
FROM テーブル1
INNER JOIN テーブル2
ON (条件1 AND 条件2)
WHERE 条件3

SQLの高度なテーブル結合テクニック

3つ以上のテーブルを結合する場合は、以下のように記述します:


SELECT 列名
FROM テーブル1
INNER JOIN テーブル2
ON テーブル1.キー = テーブル2.キー
INNER JOIN テーブル3
ON テーブル2.キー = テーブル3.キー

SQLでのテーブル結合におけるパフォーマンス最適化

大規模なデータベースでテーブル結合を行う際は、以下の点に注意が必要です:

  1. インデックスの適切な設定
  2. 結合キーの選択
  3. 結合順序の最適化
  4. 不要なカラムの選択を避ける

-- パフォーマンスを考慮した結合の例
SELECT t1.id, t1.name, t2.value
FROM table1 t1
INNER JOIN table2 t2
ON t1.id = t2.id
WHERE t1.active = 1