oracle内连接、外连接、右外连接、全外连接小总结 -凯发k8网页登录

快乐成长
posts - 110, comments - 101, trackbacks - 0, articles - 7
  凯发k8网页登录-凯发天生赢家一触即发官网 :: 凯发k8网页登录首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

数据库版本:

testa,testb,testc,各有a, b两列

a

b

001

10a

002

20a

a

b

001

10b

003

30b

a

b

001

10c

004

40c

连接分为两种:内连接与外连接。

a.内连接

内连接,即最常见的等值连接,例:

select * 
from testa,testb
where testa.a=testb.a


结果

a

b

a

b

001

10a

001

10b

b.外连接

外连接分为左外连接,右外连接和全外连接。

1.  左外连接 left outer join 或者 left join

左外连接就是在等值连接的基础上加上主表中的未匹配数据,例:

select *
from testa 
left outer join testb 
on testa.a=testb.a

oracle 支持另一种写法

select * 
from testa,testb
where testa.a=testb.a( )

结果:

a

b

a

b

001

10a

001

10b

002

20a

三个表做左外连接

select *
from testa 
left outer join testb 
on testa.a=testb.a
left outer join testc
on testa.a=testc.a

oracle 支持的另外一种写法

select *
from testa,testb,testc
where testa.a=testb.a( )
and testa.a=testc.a( )

结果:

a

b

a

b

a

b

001

10a

001

10b

001

10c

002

20a

2. 右外连接 right outer join 或者 right join

右外连接是在等值连接的基础上加上被连接表的不匹配数据

select *
from testa 
right outer join testb 
on testa.a=testb.a

oracle支持的另一种写法

select *
from testa,testb
where testa.a( )=testb.a

结果:

a

b

a

b

001

10a

001

10b

003

30b

3.全外连接 full outer join 或者 full join

全外连接是在等值连接的基础上将左表和右表的未匹配数据都加上

select * 
from testa 
full outer join testb
on testa.a=testb.a

全外连接的等价写法,对同一表先做左连接,然后右连接

select  testa.*,testb.*
from testa
left outer join testb
on testa.a=testb.a
union
select testa.*,testb.*
from testb
left outer join testa
on testa.a=testb.a

结果:

a

b

a

b

001

10a

001

10b

002

20a

003

30b



评论

# re: oracle内连接、外连接、右外连接、全外连接小总结  回复     

2013-08-16 10:54 by
o(∩_∩)o谢谢

# re: oracle内连接、外连接、右外连接、全外连接小总结[未登录]  回复     

2013-12-05 19:12 by
好文

# re: oracle内连接、外连接、右外连接、全外连接小总结[未登录]  回复     

2014-01-08 14:40 by
不会做哪些不和发的(富士康直招网)

# re: oracle内连接、外连接、右外连接、全外连接小总结  回复     

2014-03-10 16:56 by
很清晰易懂,谢谢

# re: oracle内连接、外连接、右外连接、全外连接小总结  回复     

2014-03-13 23:06 by
谢谢分享,不是很深入,但看完也算基本入门了。谢谢!

# re: oracle内连接、外连接、右外连接、全外连接小总结  回复     

2014-04-08 16:23 by
很详细

# re: oracle内连接、外连接、右外连接、全外连接小总结  回复     

2015-03-18 16:40 by
很清晰

# re: oracle内连接、外连接、右外连接、全外连接小总结  回复     

2015-03-19 16:30 by
文章不错

# re: oracle内连接、外连接、右外连接、全外连接小总结  回复     

2015-05-26 15:06 by
简单易懂 清晰明了

# re: oracle内连接、外连接、右外连接、全外连接小总结  回复     

2015-06-06 16:06 by
写的让我一下子就懂了

# re: oracle内连接、外连接、右外连接、全外连接小总结  回复     

2015-11-24 13:23 by
受用了

# re: oracle内连接、外连接、右外连接、全外连接小总结  回复     

2016-04-18 17:55 by
q

只有注册用户后才能发表评论。


网站导航:
              
 
网站地图