left join、right join、inner join之间的区别

Sql中 left join 、right join 、inner join 之间的区别:

  • left join(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。
  • right join(右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。
  • inner join(等值连接/内连接):只返回两个表中连接字段相等的行。

例:

表A记录如下:
aID     aNum
1     a20050111
2     a20050112
3     a20050113
4     a20050114
5     a20050115

表B记录如下:
bID     bName
1     2006032401
2     2006032402
3     2006032403
4     2006032404
8     2006032408


1. left join 语句如下:

SELECT * FROM A LEFT JOIN B on A.aID = B.bID;

结果如下:

aID     aNum     bID     bName
1     a20050111    1     2006032401
2     a20050112    2     2006032402
3     a20050113    3     2006032403
4     a20050114    4     2006032404
5     a20050115    NULL     NULL

结果说明:(所影响的行数为第 5 行)
left join是以A表的记录为基础的,A表可以看成左表,B表可以看成右表,left join是以左表为准,左表(A)的记录会全部表示出来,而右表(B)只会显示符合条件(A.aID = B.bID)的记录。B表记录不符合条件的均为NULL。


2. right join 语句如下:

SELECT * FROM A RIGHT JOIN B on A.aID = B.bID;

结果如下:

aID     aNum     bID     bName
1     a20050111    1     2006032401
2     a20050112    2     2006032402
3     a20050113    3     2006032403
4     a20050114    4     2006032404
NULL     NULL     8     2006032408

结果说明:(所影响的行数为 5 行)
right join 和 left join的结果相反,是以右表(B)为准,A表不符合条件的为NULL。


3. inner join 语句如下

SELECT * FROM A INNER JOIN B on A.aID = B.bID;

结果如下:

aID     aNum     bID     bName
1     a20050111    1     2006032401
2     a20050112    2     2006032402
3     a20050113    3     2006032403
4     a20050114    4     2006032404

结果说明:
inner join 显示符合条件(A.aID = B.bID)的所有记录。

转载请注明出处:BestEternity亲笔。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值