Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 実際のジョインシナリオ | NULLの処理、パフォーマンス、実世界の結合シナリオ
SQL結合の徹底解説

book実際のジョインシナリオ

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

学校の管理部門向けに包括的なレポートを作成する業務を想定。目的は、すべての生徒、その所属クラス、担当教師、および各科目の成績を一覧化すること。この種のレポートは、優秀な生徒や追加支援が必要なクラス、生徒の割り当てや成績に抜けがある箇所を特定するのに役立つ。

1234567891011121314
SELECT s.student_id, s.name AS student_name, c.class_name, t.name AS teacher_name, g.subject, g.score FROM students s LEFT JOIN classes c ON s.class_id = c.class_id LEFT JOIN teachers t ON c.teacher_id = t.teacher_id LEFT JOIN grades g ON s.student_id = g.student_id ORDER BY s.student_id, g.subject;
copy

このクエリは複数のLEFT JOINを使用し、studentsclassesteachersgradesテーブルの情報を統合。studentsテーブルを起点にclassesへ結合することで、クラスに割り当てられていない生徒(class_idNULL)もレポートに表示される。その後のteachersへの結合で、各クラスの担当教師を紐付けるが、教師がいない場合はteacher_nameNULLとなる。最後にgradesを結合することで、生徒ごとの科目と成績を取得。成績がない場合は該当列がNULLとなる。この手法により、クラスや成績が未割り当ての生徒、教師がいないクラス、全科目の成績分布などを一目で把握可能。未割り当て生徒の特定や、クラス・教師ごとの学業成績の追跡など、実用的な分析が可能となる。

1234567891011121314
SELECT s.student_id, s.name AS student_name, c.class_name, g.subject, g.score FROM students s LEFT JOIN classes c ON s.class_id = c.class_id LEFT JOIN grades g ON s.student_id = g.student_id WHERE c.class_id IS NULL OR g.grade_id IS NULL ORDER BY s.student_id;
copy

1. 成績がない学生を見つけるのに最適な結合タイプはどれですか?

2. 1つのクエリで複数の結合タイプを組み合わせるにはどうすればよいですか?

3. 学生、クラス、教師を結合し、各学生の名前、クラス、教師を表示するクエリの空欄を埋めてください。

question mark

成績がない学生を見つけるのに最適な結合タイプはどれですか?

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

question mark

1つのクエリで複数の結合タイプを組み合わせるにはどうすればよいですか?

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

question-icon

学生、クラス、教師を結合し、各学生の名前、クラス、教師を表示するクエリの空欄を埋めてください。

SELECT s.name AS student_name, c.class_name, t.name AS teacher_name FROM students s JOIN classes c ON s.class_id = c.class_id JOIN teachers t ON c.teacher_id = t.teacher_id;
student_name | class_name | teacher_name
-------------+--------------+----------------
Emily Brown | Mathematics | Alice Johnson
David Green | Mathematics | Alice Johnson
Sophia White | Science | Bob Smith
Michael Black| NULL | NULL
Olivia Blue | History | NULL
James Red | NULL | NULL
Lily Yellow | Art | Carol Lee

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

すべて明確でしたか?

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

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

セクション 3.  5

AIに質問する

expand

AIに質問する

ChatGPT

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

セクション 3.  5
some-alt