我有一张表,其中列出了参加类(class)的用户。在这张表下面我想要一个 <select>
字段,其中包含未参加类(class)的用户列表。
列出参加类(class)的用户的查询:
SELECT * FROM User
left join UserCourse on User.id = UserCourse.fkStudentId
where UserCourse.fkCourseId = 1 and u.fkRoleId = 3;
这是我的代码,我在其中尝试列出“异常(exception)”:
SELECT * FROM User where id !=
(SELECT id FROM User
left join UserCourse on User.id = UserCourse.fkStudentId
where UserCourse.fkCourseId = 1 and u.fkRoleId = 3);
问题是,有几行与第二个查询匹配,这是不允许的。 对于如何列出未出席的学生,您有什么建议吗?
最佳答案
将 !=
替换为 NOT IN
:
SELECT * FROM User where id NOT IN
(SELECT id FROM User
left join UserCourse on User.id = UserCourse.fkStudentId
where UserCourse.fkCourseId = 1 and u.fkRoleId = 3);
关于mysql - 如何选择 id 不等于答案数组的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15056353/