我想返回一个在一个部门上课但不在另一个部门上的学生列表。这是我的查询,由于某种原因,其结果是空白。如何查询一个不包含MySQL中另一个集合中的任何成员的集合?
SELECT *
FROM student
JOIN transcript
ON student.id = transcript.studID
JOIN course
ON transcript.crsCode = course.crsCode
WHERE deptId = "CSCI" NOT IN
(
SELECT student.name
FROM student
JOIN transcript
ON student.id = transcript.studID
JOIN course
ON transcript.crsCode = course.crsCode
WHERE deptId = "MATH"
);
这里是什么表是这样的:
Student (id, name, address, status)
Transcript (studId, crsCode, semester, grade)
Courses (crsCode, deptId, crsName, descr)
例如http://forums.mysql.com/read.php?10507748,507839 – Strawberry