left join,inner join,right join,cross join,full join的区别[转载]

转载 2006年06月09日 14:37:00

1,总论:

LEFT JOIN返回”first_table”中所有的行尽管在” second_table”中没有相匹配的数据。

RIGHT JOIN返回”second_table”中所有的行尽管在”first_table”中没有相匹配的数据。

INNER JOIN返回的结果集是两个表中所有相匹配的数据。

没听明白?请继续看下文分解。

2,分解:

还是用一个例子来的痛快些。。。

declare @a table(a int,b int)
declare @b table(a int,b int)

insert @a values(1,1)
insert @a values(2,2)
insert @b values(1,1)
insert @b values(3,3)

--
:
select * from @a Aa left join @b Bb on Aa.a=Bb.a
--
右:
select * from @a Aa right join @b Bb on Aa.a=Bb.a
--

select * from @a Aa join @b Bb on Aa.a=Bb.a
--
外:
select * from @a Aa full join @b Bb on Aa.a=Bb.a
--
完全
select * from @a,@b


cross join
是笛卡儿乘积 就是一张表的行数乘以另一张表的行数
left join
第一张表的连接列在第二张表中没有匹配是,第二张表中的值返回null
right join
第二张表的连接列在第一张表中没有匹配是,第一张表中的值返回null
full join
返回两张表中的行 left join+right join
inner join
只返回两张表连接列的匹配项

SQL中INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN区别

sql中的连接查询有inner join(内连接)、left join(左连接)、right join(右连接)、full join(全连接)四种方式,它们之间其实并没有太大区别,仅仅是查询出来的结果...
  • Rongbo_J
  • Rongbo_J
  • 2015年06月03日 22:17
  • 3443

join连接的五种方式的简单使用案例(Inner join,Left join,Right join,Full join,Cross join)

1.内连接Inner join内连接是基于连接谓词将俩张表(如A和B)的列组合到一起产生新的结果表 ,在表中存在至少一个匹配时,INNER JOIN 关键字返回行。 下面是一个...
  • u013412790
  • u013412790
  • 2016年06月10日 10:31
  • 3714

SQL中INNER、LEFT、RIGHT JOIN的区别和用法详解

相信很多人在刚开始使用数据库的INNER JOIN、LEFT JOIN和RIGHT JOIN时,都不太能明确区分和正确使用这三种JOIN操作,本文通过一个简单的例子通俗易懂的讲解这三者的区别,希望对大...
  • wangyuchun_799
  • wangyuchun_799
  • 2015年10月13日 14:12
  • 9710

SQL中 inner join、 left join 、right join、 outer join之间的区别

转自网络 举个例子你就能知道了! A表(a1,b1,c1) B表(a2,b2) a1 b1 c1 a2 b2 01 数学 95 01 ...
  • u013481061
  • u013481061
  • 2014年12月09日 12:48
  • 2889

oracle中left join和right join和inner join的区别

oracle中left join和right join的区别   通俗的讲:      A   left   join    B    的连接的记录数与A表的记录数同   ...
  • zhangzhen6960
  • zhangzhen6960
  • 2011年11月04日 09:12
  • 3562

数据库表的连接(Left join , Right Join, Inner Join)用法详解

Left Join, Inner Join 的相关内容,非常实用,对于理解原理和具体应用都很有帮助! left join 是left outer join的简写,left join默认是outer属...
  • u014285517
  • u014285517
  • 2015年12月13日 20:45
  • 5000

SQL的各种连接(cross join、inner join、full join)的用法理解

SQL中的连接可以分为内连接,外连接,以及交叉连接 。 1. 交叉连接CROSS JOIN 如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘...
  • xiaoshunzi111
  • xiaoshunzi111
  • 2017年03月30日 08:40
  • 1301

left join(左联接)right join(右联接) inner join(等值连接) 区别

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连...
  • zhouranlovesmile
  • zhouranlovesmile
  • 2017年03月10日 20:12
  • 351

图解SQL的各种连接(Inner join,outer join,left join,right join)

关于 SQL Join 的文章是一篇非常棒的新手入门指南。由于 SQL Join 似乎被默认为基础,同时利用文氏图表来解释它,乍一看似乎是很自然的选择。然而,就像文章评论里说的,我也发现在实际测试中,...
  • zhushuhai331
  • zhushuhai331
  • 2016年01月07日 16:43
  • 6623

SQL join,left join ,right join , inner join , outer join用法解析及HIVE join 优化

SQL join,left join ,right join , inner join , outer join用法解析及HIVE join 优化
  • cc18868876837
  • cc18868876837
  • 2016年11月07日 09:49
  • 2413
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:left join,inner join,right join,cross join,full join的区别[转载]
举报原因:
原因补充:

(最多只允许输入30个字)