--先建立几个表
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
看的出结果不一样了,下面这个就达不到连接的效果了。(也要看情况)!