排除SQL select中另一个表中出现的条目

时间:2014-03-19 07:28:01

标签: mysql sql

我有三个SQL表如下:

CREATE TABLE course (
    int id AUTO_INCREMENT,
    varchar(50) name,
    PRIMARY KEY id
)

CREATE TABLE prereq (
    int dependent,
    int requirement,
)

依赖和要求都是course.id

的外键
CREATE TABLE enrollment (
    int courseId,
)

courseId也是course.id的外键。

我需要做一个选择,显示给定依赖课程的所有需求课程,但是如果该要求课程出现在注册表中则不需要。

我的解决方案是创建每个表的两个实例,将它们全部连接在一起,在需求,courseId和course.id上,从而创建两个独立的三个表集合在一起,然后选择所有需求来自集合的需求1不等于第2组的注册,认为这将消除注册中发生的任何条目,但它仍然给了我给定的依赖项的所有要求。

有人能用这个查询指出我正确的方向吗?谢谢!

0 个答案:

没有答案