首页 > 代码库 > 小结left join以及中间表查询

小结left join以及中间表查询

直接上例子:

a表

技术分享

 

b表

技术分享

ab表

技术分享

 

一、left join 过程(以 select * from a left join ab on a.a_id = ab.a_id):

用a中的记录根据on条件联合ab的记录进行筛选并做笛卡尔积,过称为

  筛选过程:

        a: 1,"lige"  ab: 1,3

                  1,2

        a: 2,"jk"    ab:2,3

        a:3,"df"   ab:3,3

          a:4,"kk"     ab:NULL

  笛卡尔积:

           1,"lige",1,3

        1,"lige",1,2

        2,"jk",2,3

        3,"df",3,3

        4,"kk",null,null

即为查询的结果

技术分享

二、三张表连接查询的过程

就是在a和ab做了连接查询得到的结果上再与b做连接查询

select * from a left join ab on a.a_id=ab.a_id left join b on ab.b_id=b.b_id;

技术分享

三、LEFT JOIN条件放ON和WHERE后的区别(图转自百度经验)

技术分享

 注意:条件放WHERE后时的先连接后筛选是指在根据on筛选、笛卡尔积连接(即一中的过程)之后的结果上再进行筛选!!!

 

小结left join以及中间表查询