「クール」(フランス語)と呼ばれるレッスンを含むテーブルがあり、中にいくつかのコースがあり、それらの間にテーブルを置いて生徒にリンクし、レッスンに行くかどうかを確認しました。
SELECT と選択されていないデータを含むデータを返したいと思います。
ですから、一人の生徒が 5 科目を 3 科目履修した場合、履修した 3 科目と履修していない 2 科目を返還したいと考えています。
それを行う方法はありますか?
これは RBDMS によって異なりますが、次のようなものが機能するはずです。
SELECT
s.Name,
l.Name,
CASE WHEN sl.StudentID IS NULL
THEN 'Not Follows'
ELSE 'Follows'
END AS Status
FROM
Student s
CROSS JOIN Lessons l
LEFT JOIN Student_Lessons sl
ON s.ID = sl.StudentID
AND l.ID = sl.LessonID
これはouter join
です。データベース エンジン (特定の外部結合構文を使用している場合があります) とスキーマを特定すると、実際の SQL に関するヘルプを得ることができます。