我是SQL新手,希望在此查询中获得一些帮助。
我有3个表:"Students"
,"Courses"
,"Attendance"
:
"Students" has these columns:
s_ID (primary key), name
"Courses" has these columns:
c_ID (primary key), courseName
"Attendance" has these columns:
s_ID (foreign key), c_ID (foreign key)
学生可以参加一些课程。
我想要的是一个查询,它将检索具有给定id的学生不参加的所有课程的ID。
答案 0 :(得分:0)
你可以试试这个:
SELECT * FROM Courses c WHERE NOT EXISTS(SELECT 1 FROM Attendance a WHERE a.s_ID = @studentID AND a.c_ID = c.c_ID)
这将选择Attendance
中没有条目的所有课程,其中包含给定的学生ID和Courses
表中的课程ID。
这假设您可以使用特定ID替换@studentID
,也可以作为参数传递。