Left Join、Right Join、Inner Join的区别

 

 

 概念上的区别:

Left Join[左联结]

  返回包括左表中的所有记录和右表中联结字段相等的记录

Right Join[右联结]

  返回包括右表中的所有记录和右表中联结字段相等的记录

Inner Join[等值联结]

  只返回两个表中字段相等的行

二 举例说明:

表A记录如下:

AID   AName
1     李明
2      王磊
3      李鹏
4      胡军

表B记录如下:
BID   BName
1      明明
2      李会军
3      赵勇
8      李中山

执行SQL语句

 

Left Join、Right Join、Inner Join的区别 演示代码
Left Join
---------------------------
select 
*  from A Left Join B On A.AID = B.BID
结果如下:
AID AName BID BName
1    李明     1   明明
2    王磊     2   李会军
3    李鹏     3   赵勇
4    胡军    null   null
所影响的行数为4行
结果分析:
Left Join 是以A表为基础的,A可以看作是左表,B可以看作是右表,Left Join是以左表为准的.
也可以简单的理解为,左表(A)的记录将会全部显示出来,而右表(B)只会显示符合搜索条件的记录;(如:A.AID
= B.BID)

Right Join 

---------------------------
select 
*  from A Right Join B On A.AID = B.BID
结果如下:
AID AName BID BName
1    李明     1   明明
2    王磊     2   李会军
3    李鹏     3   赵勇
null   null     8   胡军
所影响的行数为4行
结果分析:
和Left Join的结果相反,Right Join 是以右表为基础的,左表不存在的用null来填充;

Inner Join
---------------------------
select 
*  from A Inner Join B On A.AID = B.BID
结果如下:
AID AName BID BName
1    李明     1   明明
2    王磊     2   李会军
3    李鹏     3   赵勇
所影响的行数为3行
结果分析:
怎么,少了一条记录,对了,Inner Join 只是显示出了A表中和B表中符合条件的记录,而不以任何一张表为基准.

 

你可能感兴趣的:(right join)