我想在一种 SQL 语法中使用 DISTINCT、NOT EXISTS 和 EXCEPT,但它不起作用。这是我的 SQL 语法:
SELECT DISTINCT S.ID, S.name
FROM student AS S
WHERE NOT EXISTS(
(SELECT course_id FROM course
WHERE dept_name = 'Biology')
EXCEPT
(SELECT T.course_id FROM takes AS T
WHERE S.ID = T.ID)
);
这是错误:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near
'EXCEPT (SELECT T.course_id FROM takes AS T WHERE S.ID = T.ID))' at line 1
如何让它工作,我无法解决,大伙帮帮我..
最佳答案
据我所知,MySQL
中没有EXCEPT
。使用 NOT IN
而不是
SELECT DISTINCT S.ID, S.name
FROM student AS S
WHERE NOT EXISTS(
SELECT course_id FROM course
WHERE dept_name = 'Biology'
AND course_id NOT IN
(SELECT T.course_id FROM takes AS T
WHERE S.ID = T.ID)
);
关于mysql - 我的 SQL 语法有什么问题?我在其中使用了 DISTINCT 和 EXCEPT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32453348/