3个表连接,一个表作为它们之间的桥

时间:2015-05-25 10:02:23

标签: mysql

我有3张学生/学校信息表。

*students* table has ID | First Name | Last Name  
*classes* table has  ID | Class Name | Department
*matrix* table has   ID |class_id | student_id

我需要进行查询并获取矩阵表中没有匹配项的所有学生,所有类和NULL。 矩阵表基本上是我写下每个学生注册的班级的地方。

我用过

SELECT *
FROM matrix
LEFT JOIN students AS students ON matrix.student_id = students.id
LEFT JOIN classes AS classes ON matrix.class_id = classes.id

但这只会让那些有匹配科目的学生回归。我还需要没有匹配课程的学生。

示例:http://sqlfiddle.com/#!9/bc9bf/2/0

在小提琴中,我希望 Johanna 也会在查询中显示NULL |相应的class_idstudent_id

中为NULL

1 个答案:

答案 0 :(得分:1)

加入应该使用students作为左表

select * from students s
 left join matrix m on m.student_id = s.id
 left join classes c on c.id = m.class_id;

http://sqlfiddle.com/#!9/bc9bf/4