私はテーブルを持っています:
courseTracker(
student int
courseID int
)
学生「B」と同じコースを受講しているすべての学生を見つけたい
私はテーブルを持っています:
courseTracker(
student int
courseID int
)
学生「B」と同じコースを受講しているすべての学生を見つけたい
この 2 つのどちらが必要なのかよくわからないので、両方を含めました。
これにより、B と共通するコースが少なくとも 1 つある学生が返されます。
SELECT DISTINCT student FROM coursetracker
WHERE courseID IN (
SELECT courseID FROM coursetracker WHERE student = 'B'
)
これにより、B とまったく同じコースを持つ学生が返されます。
SELECT student FROM (SELECT DISTINCT student FROM coursetracker) c
WHERE NOT EXISTS (
SELECT * FROM coursetracker c1
FULL JOIN coursetracker c2 ON c1.courseId = c2.courseId
AND c1.student = c.student AND c2.student = 'B'
WHERE c1.courseID IS NULL OR c2.courseID IS NULL
)