从一个表中选择表行,其中另一个表中的表列的值为x

时间:2014-02-17 16:09:03

标签: php mysql sql database

我正在尝试从第二个表上有外键的表中选择行,第二个表中的键在第三个表中用作外键。如何从第一个表中检索第三个表中没有第二个表中的键的行,该表的特定键的行将第一个表的行的主键作为外键,并且在第三个表上它还没有得到了第四张桌子的外键。

我尝试使用内部联接但它只适用于SELECTING行,它具有指定值而不是没有指定值。

请帮帮我

教师表

FaculID | FaculName | FaculLocation |

课程表

CourseID | CourseName | CourseDescription

FacultyCourse表

fcID | CourseID | FaculID

注册表

RegID | fcID | stuID

学生表

stuID | stuName | stuAge | stuAddress

所以基本上我现在要做的就是获得所有出价,其中e表没有得到uid并且做了(有出价外键)。

2 个答案:

答案 0 :(得分:3)

尝试使用LEFT OUTER JOIN:

SELECT a.*
FROM a
LEFT OUTER JOIN b on a.keya = b.keybjoina
LEFT OUTER JOIN c on b.keybjoina = c.keycjoinb
WHERE c.keycjoinb IS NULL

答案 1 :(得分:0)

尝试:

(根据需要更改表名和列名)

根据示例布局更新

select *
  from faculty
 where faculid not in (select faculty.FaculID
                         from faculty
                         join facultycourse 
                           on faculty.FaculID = FacultyCourse.FaculID
                         join registration
                           on registration.fcid = FacultyCourse.fcid
                        where registration.stuid = 'XYZ');