2015-10-11 53 views
0

这真的一直在困扰我一段时间。我试图编写一个SQL查询来返回所有课程(名称),他们的教师(名称)和他们的必备课程(如果他们存在)。但我的查询不起作用,我不知道该怎么办了。我不断收到一个空集。MySQL查询内部连接返回空集

SELECT course, instructors.inst, 
something 
FROM courses a inner join instructors ON a.course_id = instructors.inst_id 
INNER JOIN courses b ON a.prereq = b.course_id where a.prereq IS NOT NULL; 

我在做错误的多个内部连接?任何帮助将不胜感激。

+0

也许没有课程,满足所有的标准是什么? – Strawberry

+1

另外,令人惊讶的是,instruct_id不可能引用course_id – Strawberry

+1

如果您发布相关表的定义,这将是有帮助的... –

回答

0

LEFT OUTER JOIN应该给你结果。如果你在所有连接表中都有数据,则连接只会返回结果。

0

试试这个

SELECT a.course_name AS "Course", instructors.inst_name AS "Instructor", 
b.course_name AS "Prereq" 
FROM courses a 
LEFT OUTER JOIN instructors ON a.course_id = instructors.inst_id 
LEFT OUTER JOIN courses b ON a.prereq = b.course_id