首页 > 其他 > 详细

left join多表操作

时间:2014-12-08 19:33:38      阅读:242      评论:0      收藏:0      [点我收藏+]

借用了一个博友:http://blog.csdn.net/tomholmes7/article/details/5786166

建立表结构如下:

create table a (a1 int, a2 varchar(10));
create table b (b1 int, b2 varchar(10));
create table c (c1 int, c2 varchar(10));

insert into a values( 1  ,‘haha‘);
insert into a values( 2  ,‘ssss‘);
insert into a values( 4  ,‘tttt‘);
insert into b values( 1  ,‘cccc‘);
insert into c values( 2  ,‘xxxx‘);


执行下面的两条left join:

select * from  a
        left join  b on a.a1=b.b1
        left join  c on a.a1=c.c1;
       
select * from a
        left join b on a.a1=b.b1
        left join c on b.b1=c.c1;

实际上结果是不同的:

前者是:

bubuko.com,布布扣

后者是:
bubuko.com,布布扣

个人理解:

  left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的。换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID)。B表记录不足的地方均为NULL。

  当left join c的时候,是以a left join b生成的临时表为主表然后去left join c表,我是这么理解的。

  a left join b on a.a1=b.b1 left join c on a.a1=c.c1 => 一环扣一环,基本上不会出现问题

left join多表操作

原文:http://www.cnblogs.com/zafuacm/p/4151682.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!