クイックリファレンス

SQL JOIN 結合チートシート

SQL テーブル結合のクイックリファレンス:INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN の構文とベン図のロジックを図解。

· 公開日

構文例

SELECT order_items.id, orders.order_date, order_items.price
FROM order_items
LEFT OUTER JOIN orders
  ON order_items.order_id = orders.id;

JOIN は、複数のテーブル間にある関連カラムに基づいて行を結合します。

結合の視覚化

SELECT * FROM `A` INNER JOIN `B`
┌────────┐
│ A  ┌───┼────┐
│    │ ∩ │    │
└────┼───┘  B │
     └────────┘
結合タイプ 含まれるデータ 説明
INNER JOIN ∩ 両方のテーブルで値が一致するレコードを返す
LEFT OUTER JOIN A + ∩ テーブルAのすべてのレコードと、テーブルBの一致するレコードを返す
RIGHT OUTER JOIN ∩ + B テーブルBのすべてのレコードと、テーブルAの一致するレコードを返す
FULL OUTER JOIN A + ∩ + B 左右いずれかのテーブルに一致があるすべてのレコードを返す

JOIN のバリエーションとフィルタリング

積集合を除外した Left Join

SELECT * FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL;

積集合を除外した Right Join

SELECT * FROM A
RIGHT JOIN B ON A.key = B.key
WHERE A.key IS NULL;

積集合を除外した Full Outer Join

SELECT * FROM A
FULL OUTER JOIN B ON A.key = B.key
WHERE A.key IS NULL OR B.key IS NULL;

関連テーマ