0

「クール」(フランス語)と呼ばれるレッスンを含むテーブルがあり、中にいくつかのコースがあり、それらの間にテーブルを置いて生徒にリンクし、レッスンに行くかどうかを確認しました。

SELECT と選択されていないデータを含むデータを返したいと思います。

ですから、一人の生徒が 5 科目を 3 科目履修した場合、履修した 3 科目と履修していない 2 科目を返還したいと考えています。

それを行う方法はありますか?

4

2 に答える 2

1

これは 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
于 2012-12-10T17:13:29.140 に答える
0

これはouter joinです。データベース エンジン (特定の外部結合構文を使用している場合があります) とスキーマを特定すると、実際の SQL に関するヘルプを得ることができます。

于 2012-12-10T17:08:22.227 に答える