Mysql 3个表连接在一起,其中一个表作为它们之间的桥梁

Mysql 3个表连接在一起,其中一个表作为它们之间的桥梁,mysql,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 matri

我有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
但这只是返回具有匹配科目的学生。我还需要一个没有匹配类的学生

例如:


在fiddle中,我希望Johanna也会在查询中显示为NULL | NULL,在相应的class_id和student_id中

应该将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;

左键从学生开始连接,而不是矩阵解,谢谢。我的逻辑是错误的,从学生开始对我没有意义,但现在我明白了如何思考。