MySQLにおけるLEFT JOINの使い方とは?
MySQLでLEFT JOINは、2つのテーブルを結合し、左側のテーブルのすべての行と、右側のテーブルと一致する行を返すために使用されます。LEFT JOINは、両方のテーブル間の特定の条件に基づいて結合され、通常は両方のテーブル間の外部キー関係です。
文法は次のとおり。
SELECT 列名 FROM 表A
LEFT JOIN 表B ON 表A.列名 = 表B.列名;
A表が左の表で、B表が右の表で、列名が2つの表をつなぐ条件です。
LEFT JOINでは、左側のテーブルからすべての行を選択し、各行について右側のテーブルと一致する行を探します。一致する行が右側のテーブルに存在しない場合は、NULL値を返します。
ここでは、Order(注文)テーブルとCustomer(顧客)テーブルの外接キーのリレーションシップについて、サンプルを1つ示します。
注文テーブル(オーダー)
order_id | customer_id | order_date
-----------------------------------
1 | 1 | 2022-01-01
2 | 2 | 2022-02-01
3 | 1 | 2022-03-01
顧客テーブル
customer_id | customer_name
---------------------------
1 | Alice
2 | Bob
3 | Charlie
customer_idを照合して、注文情報と顧客情報をJOINで取得できます(一致する場合のみ):
SELECT order_id, order_date, customer_name
FROM order
LEFT JOIN customer ON order.customer_id = customer.customer_id;
検索結果:
order_id | order_date | customer_name
-------------------------------------
1 | 2022-01-01 | Alice
2 | 2022-02-01 | Bob
3 | 2022-03-01 | Alice
LEFT JOINでは、右テーブルのある1行が左テーブルの複数の行とマッチする場合、複数の行結果が返されることに注意。