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行が左テーブルの複数の行とマッチする場合、複数の行結果が返されることに注意。

bannerAds