Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ LEFT JOINの探求 | セクション
SQL結合の徹底解説

bookLEFT 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;
copy

LEFT JOIN を使用すると、結果の一部の列に NULL 値が含まれることがあります。これは、右側のテーブルに対応するレコードが存在しない場合に発生します。上記の例では、注文をしていない顧客も一覧に表示されますが、注文に関する列(order_idamount)は 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;
copy

1. LEFT JOINは、右側のテーブルに一致する行が存在しない場合、左側のテーブルの行に対して何を返しますか?

2. LEFT JOINの結果でNULL値はどのようにして発生しますか?

3. すべての顧客とその注文日を、注文がない顧客も含めて表示するクエリを完成させてください。

question mark

LEFT JOINは、右側のテーブルに一致する行が存在しない場合、左側のテーブルの行に対して何を返しますか?

正しい答えを選んでください

question mark

LEFT JOINの結果でNULL値はどのようにして発生しますか?

正しい答えを選んでください

question-icon

すべての顧客とその注文日を、注文がない顧客も含めて表示するクエリを完成させてください。

SELECT c.name, FROM customers c LEFT JOIN orders o ON c.customer_id = o.customer_id;
Alice Smith|2024-06-01
Alice Smith|2024-06-03
Bob Johnson|2024-06-02
Charlie Lee|NULL
Diana King|2024-06-04
Eve Adams|NULL

クリックまたはドラッグ`n`ドロップして空欄を埋めてください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  3

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  3
some-alt