Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 結合におけるNULLの扱い | セクション
SQL結合の徹底解説

book結合におけるNULLの扱い

メニューを表示するにはスワイプしてください

SQLの結合、特にLEFT JOINRIGHT JOINFULL OUTER JOINを使用する場合、結果にNULL値が頻繁に現れることがあります。NULLは、メインテーブルの特定の行に対して結合先テーブルに一致する行が存在しない場合に表示されます。例えば、LEFT JOINでは左側のテーブルのすべての行が結果セットに含まれますが、右側のテーブルに対応する行がない場合、右側のテーブルのカラムは一致しない行に対してNULLで埋められます。これは結合ロジックの自然な結果であり、SQLは存在しないデータを埋めることができないため、NULLをプレースホルダーとして使用します。特に、クラスに割り当てられていない学生や教師がいないクラスなど、オプションのリレーションシップを扱う場合によく見られます。

12345678
-- Show all students and their class names, including students not assigned to any class SELECT students.name AS student_name, classes.class_name FROM students LEFT JOIN classes ON students.class_id = classes.class_id;
copy

NULL値の扱いは、結合結果を扱う上で重要な要素です。出力をより読みやすく、意味のあるものにしたい場合は、COALESCEのような関数を使ってNULL値を「未割り当て」や「不明」などのデフォルト値に置き換えることができます。また、WHERE句でIS NULLの条件を使用し、結合で一致しなかった行を抽出することも可能です。これらの方法により、データの解釈が容易になり、エンドユーザーに対してより明確なレポートを提示できます。

12345678
-- Replace NULL class names with "Unassigned" for students without a class SELECT students.name AS student_name, COALESCE(classes.class_name, 'Unassigned') AS class_name FROM students LEFT JOIN classes ON students.class_id = classes.class_id;
copy

1. なぜ結合結果にNULL値が現れるのか?

2. SQLでNULLをデフォルト値に置き換えるにはどうすればよいか?

3. すべての学生とそのクラス名を表示し、クラスが存在しない場合は "Unassigned" に置き換えるクエリの空欄を埋めてください。

question mark

なぜ結合結果にNULL値が現れるのか?

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

question mark

SQLでNULLをデフォルト値に置き換えるにはどうすればよいか?

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

question-icon

すべての学生とそのクラス名を表示し、クラスが存在しない場合は "Unassigned" に置き換えるクエリの空欄を埋めてください。

(classes.class_name, 'Unassigned') AS class_nameFROMstudentsLEFT JOINclasses ON students.class_id = classes.class_id;
Emily Brown | Mathematics
David Green | Mathematics
Sophia White | Science
Michael Black | Unassigned
Olivia Blue | History
James Red | Unassigned
Lily Yellow | Art

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

すべて明確でしたか?

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

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

セクション 1.  14

AIに質問する

expand

AIに質問する

ChatGPT

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

セクション 1.  14
some-alt