実際のジョインシナリオ
メニューを表示するにはスワイプしてください
学校の管理者向けに包括的なレポートを作成することを想定。目的は、すべての生徒、その所属クラス、担当教師、および各科目の成績を一覧化すること。この種のレポートは、どの生徒が優秀か、どのクラスが追加支援を必要としているか、生徒の割り当てや成績付けにギャップがある箇所を特定するのに役立つ。
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. 学生、クラス、教師を結合して、各学生の名前、クラス、教師を表示するクエリの空欄を埋めてください。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 17
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 1. 章 17