oracle 左右连接实例讲解

--先建立几个表

  create table TWB03
(
  ID    NUMBER(10),
  ADATE VARCHAR2(10)
)
插入的数据
1 a1
2 a2
3 a3

create table TWB04
(
  ID2   NUMBER(10),
  BDATE VARCHAR2(10)
)
插入的数据
1 b1
2 b2
4 b4

select a.id,a.adate,b.id2,b.bdate from twb03 a left join  twb04 b on a.id=b.id2

select a.id,a.adate,b.id2,b.bdate from twb03 a, twb04 b where a.id=b.id2(+)

id    adate    id2    bdate
1 a1 1 b1
2 a2 2 b2
3 a3  

   
上面两个的效果一样:+表示右边的表是根据左边的表有条件出来的。

select a.id,a.adate,b.id2,b.bdate from twb03 a, twb04 b where a.id(+)=b.id2
select a.id,a.adate,b.id2,b.bdate from twb03 a right join  twb04 b on a.id=b.id2
 id   adate     id2    bdate
 1 a1 1 b1
 2 a2 2 b2
  4 b3     
 
这两个是一样的。
select a.id,a.adate,b.id2,b.bdate from twb03 a, twb04 b where a.id=b.id2

 


深入探讨一下,左右连接,看一个例子:
select * from twb03 a,twb04 b where  a.id=b.id2(+) and b.id2(+)!=2

id      adate   id2     bdate
1 a1 1 b1
2 a2  
3 a3  
对比一下:
select * from twb03 a,twb04 b where  a.id=b.id2(+) and b.id2!=2
id      adate   id2     bdate
1 a1 1 b1

看的出结果不一样了,下面这个就达不到连接的效果了。(也要看情况)!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9778796/viewspace-587036/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9778796/viewspace-587036/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值