(1)
其实left join 和inner join查询最大 的区别是展示的数据形式不一样,left join会将左边表的数据全部显示出来,右边的表只会显示符合查询条件的相关信息。但是inner join只是显示符合查询条件的数据,根据自己的喜好选择就行。如下面的例子:
select EmployeeCode,EmployeeName,HR_D.DeptId,HR_D.DeptName,HR_T.TeamId,HR_T.TeamName
from HR_Employee HR_E inner join HR_Team HR_T
on HR_E.TeamId=HR_T.TeamId
inner join HR_Depart HR_D
on HR_E.DeptId=HR_D.DeptId
结果:
因为有的数据不只是一个表中存在,所以最好在查询的字段前加上这个字段是哪个表的,然后就是一定要分清哪个表更重要,比如这个例子,我们查询的是员工的一些相关信息,所以员工表是我们要注意的,用员工表分别通过与其他两个表的关联字段进行关联,HR_Employee与HR_Team关联的字段是TeamId,HR_Employee与HR_Depart相关联的字段是DeptId。
(2)下面是用left join 查询三个表的信息:
select o.SysCode,o.StyleName,o.Size,p.Customer,p.DeliveryDate,b.BrushDate,b.EmpCode,b.StepCode from OrderDetail o left join BrushCard_Material b on o.Odid=b.OdID
left join ProductOrder p on o.SysCode=p.SysCode
结果:
我们一定要注意的是要查询数据的主要的表,如果这个表中没有所需要的全部数据,就通过这个表来和其它表进行关联来查询。