我有三个表 学校表、专业表、年级表 
学校表和专业表关联~专业表和年级表关联~ 
我想在mysql中查询所有的记录~即使是记录中某些字段没有数据~ 
比如:有的学校刚填写的时候是没有相关的专业和年级的~而有的专业是没有相关的年级的~ 
学校id  学校      专业id    专业      年级id    年级 
1      北京大学      1      生命工程    null    null 
1      北京大学      2      软件工程    1      一年级 
类似这样的信息如何输出所有记录~
select sh.ID as ID,sh.school as school, s.speciality as speciality,s.ID as specialityID,s.schoolID as schoolID,g.ID as gradeID,g.grade as grade from speciality s right join school sh on s.schoolID = sh.ID right join grade g on s.ID=g.specialityID
这是我现在写的语句~只能是显示所有相关信息都有的数据~而某些比如专业为空或者专业和年级都为空的数据就不能显示出来~

解决方案 »

  1.   

    select sh.ID as ID,sh.school as school, s.speciality as speciality,s.ID as specialityID,s.schoolID as schoolID,g.ID as gradeID,g.grade as grade from school sh left join speciality s on s.schoolID = sh.ID left join grade g on s.ID=g.specialityID 
      

  2.   

    select sh.ID as ID,sh.school as school, s.speciality as speciality,s.ID as specialityID,s.schoolID as schoolID,g.ID as gradeID,g.grade as grade from speciality s left join school sh on s.schoolID = sh.ID left join grade g on s.ID=g.specialityID