実際のジョインシナリオ
メニューを表示するにはスワイプしてください
学校の管理部門向けに包括的なレポートを作成する業務を想定。目的は、すべての生徒、その所属クラス、担当教師、および各科目の成績を一覧化すること。この種のレポートは、優秀な生徒や追加支援が必要なクラス、生徒の割り当てや成績に抜けがある箇所を特定するのに役立つ。
1234567891011121314SELECT 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;
このクエリは複数のLEFT JOINを使用し、students、classes、teachers、gradesテーブルの情報を統合。studentsテーブルを起点にclassesへ結合することで、クラスに割り当てられていない生徒(class_idがNULL)もレポートに表示される。その後のteachersへの結合で、各クラスの担当教師を紐付けるが、教師がいない場合はteacher_nameがNULLとなる。最後にgradesを結合することで、生徒ごとの科目と成績を取得。成績がない場合は該当列がNULLとなる。この手法により、クラスや成績が未割り当ての生徒、教師がいないクラス、全科目の成績分布などを一目で把握可能。未割り当て生徒の特定や、クラス・教師ごとの学業成績の追跡など、実用的な分析が可能となる。
1234567891011121314SELECT 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;
1. 成績がない学生を見つけるのに最適な結合タイプはどれですか?
2. 1つのクエリで複数の結合タイプを組み合わせるにはどうすればよいですか?
3. 学生、クラス、教師を結合し、各学生の名前、クラス、教師を表示するクエリの空欄を埋めてください。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 3. 章 5
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 3. 章 5