我有三个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组的注册,认为这将消除注册中发生的任何条目,但它仍然给了我给定的依赖项的所有要求。
有人能用这个查询指出我正确的方向吗?谢谢!