ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle 左右连接实例讲解

oracle 左右连接实例讲解

原创 Linux操作系统 作者:tongwenbin 时间:2009-04-10 16:29:03 0 删除 编辑

--先建立几个表

  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/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 两表连接更新
请登录后发表评论 登录
全部评论

注册时间:2008-07-03

  • 博文量
    30
  • 访问量
    41330