LEFT JOIN、RIGHT JOIN:外部結合
外部結合
- 表結合を指定するときに「WHERE」のほかに「LEFT JOIN」と「RIGHT JOIN」で表を結合することができます
- これは、表の結合したときに指定された左右いずれかの表を優先して表示を行う指定です
値が0のデータは表示されない
SELECT i.item_name, SUM(c.count) FROM my_items i, carts c WHERE i.id=c.item_id GROUP BY c.item_id;
この時点では、「0」は表示されません。
外部結合
- 一方のテーブルにのみデータが存在している場合でも結合できます
SELECT i.item_name, SUM(c.count) FROM my_items i LEFT JOIN carts c ON i.id=c.item_id GROUP BY c.item_id;
外部結合の使い方
- 左側のテーブルを基準とする「LEFT JOIN」
- 右側のテーブルを基準とする「RIGHT JOIN」
SELECT ... FROM テーブル1 LEFT JOIN テーブル2 ON 結合の条件 WHERE ...
基準のテーブル1のデータは必ず全て表示されます。
その上で、テーブル2 で指定したテーブル内にデータがあれば、それもあわせて表示します。
内部結合
SELECT ... FROM テーブル1 INNER JOIN テーブル2 ON 結合の条件 WHERE ...