LEFT JOINの探求
メニューを表示するにはスワイプしてください
一方のテーブルのすべてのレコードを、もう一方のテーブルに関連するレコードが存在しなくても表示したい場合、LEFT JOIN を使用します。この結合は、customers のようなエンティティの完全な一覧が必要で、関連データ(たとえば orders)が存在する場合のみ含めたいときに特に有用です。たとえば、どの顧客が注文をしたか、またはしていないかを知りたい場合、LEFT JOIN を使うことで、すべての顧客を表示し、注文がある場合は注文の詳細を、ない場合は注文フィールドを空欄にして確認できます。
12345-- List all customers and their order amounts (if any) SELECT c.customer_id, c.name, o.order_id, o.amount FROM customers c LEFT JOIN orders o ON c.customer_id = o.customer_id;
LEFT JOIN を使用すると、結果の一部の列に NULL 値が含まれることがあります。これは、右側のテーブルに対応するレコードが存在しない場合に発生します。上記の例では、注文をしていない顧客も一覧に表示されますが、注文に関する列(order_id、amount)は NULL となります。これは、SQL がそのフィールドに「データが存在しない」ことを示す方法であり、注文のない顧客を簡単に見分けるのに役立ちます。
123456-- Show each customer and the total amount of their orders (NULL if none) SELECT c.name, SUM(o.amount) AS total_amount FROM customers c LEFT JOIN orders o ON c.customer_id = o.customer_id GROUP BY c.name;
1. LEFT JOINは、右側のテーブルに一致する行が存在しない場合、左側のテーブルの行に対して何を返しますか?
2. LEFT JOINの結果でNULL値はどのようにして発生しますか?
3. すべての顧客とその注文日を、注文がない顧客も含めて表示するクエリを完成させてください。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 3
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 1. 章 3