获取学生没有参加的课程

时间:2015-03-13 12:13:45

标签: sql sqlite

我是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。

1 个答案:

答案 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,也可以作为参数传递。