Oracle内连接、外连接、右外连接、全外连接小总结

原创 2011年01月08日 15:39:00

转自:http://www.itwis.com/html/database/oracle/20080115/847.html

数据库版本:Oracle 9i

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

10B

三个表做左外连接

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

 

 

相关文章推荐

LINQ多条件右外连接

  • 2014年05月04日 15:51
  • 13KB
  • 下载

Oracle左连接、右连接、全外连接以及(+)号用法

Oracle左连接、右连接、全外连接以及(+)号用法 1、准备工作 Oracle  外连接(OUTER JOIN)包括以下: · 左外连接(左边的表不加限制) · 右外连接(右边的表不加限制) · ...

Oracle左连接、右连接、全外连接以及(+)号用法(转)

Oracle左连接、右连接、全外连接以及(+)号用法

Oracle 左连接、右连接、全外连接、(+)号作用

Oracle  外连接 (1)左外连接 (左边的表不加限制)        (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制)      外连接(Outer Join...

10、Oracle:左连接、右连接、全外连接以及(+)号用法

本文来自:http://www.cnblogs.com/hehaiyang/p/4745897.html 阅读目录 1、准备工作2、左外连接(LEFT OUTER JOIN/ LEFT JOIN...

oracle数据库--Oracle 左连接、右连接、全外连接、(+)号作用

Oracle  外连接 (1)左外连接 (左边的表不加限制)        (2)右外连接(右边的表不加限制)        (3)全外连接(左右两表都不加限制)        ...

Oracle内连接、外连接、右外连接、全外连接小总结

任何时候,基础最重要........ 表TESTA,TESTB,TESTC,各有A, B两列 ‍   连接分为两种:内连接与外连接。   A.内连接 内连接,即最常见的等值连接,例:...

Oracle内连接、左外连接、右外连接、全外连接小总结

转载:Oracle内连接、左外连接、右外连接、全外连接小总结 数据库版本:Oracle 9i 连接n个表,至少需要n-1个连接条件。例如:连接三个表,至少需要两个连接条件。 表TES...

Oracle内连接、外连接、右外连接、全外连接小总结

外连接(Outer Join) outer join则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。它还返回任何在第二个输入中没有匹配行的第一个输入中的行。外连接分为三种: 左外...

sql查询之左连接,右连接,内连接以及全外连接的使用(测试常见面试题欧)

sql查询之左连接,右连接,内连接以及全外连接的使用(测试常见面试题欧)...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle内连接、外连接、右外连接、全外连接小总结
举报原因:
原因补充:

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