Oracle內連線、外連線、右外連線、全外連線小總結
轉自
http://www.blogjava.net/hello-yun/archive/2011/04/08/347890.html
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 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/543979/viewspace-774388/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 左外連線、右外連線、全外連線小總結Oracle
- 【SQL】Oracle的內連線、左外連線、右外連線及全外連線SQLOracle
- SQL的四種連線:內連線 左外連線 右外連線 全連線SQL
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- 內連線、外連線總結
- 深入理解SQL的四種連線-左外連線、右外連線、內連線、全連線SQL
- Oracle左外連線、右外連線、完全外連線以及(+)號用法Oracle
- oracle sql內連線_左(右)連線_全外連線_幾種寫法OracleSQL
- 內連線、外連線
- 例項解析外連線 內連線 自連線 全連線
- Oracle 表連線方式詳解(外連結、內連線、自連線)Oracle
- 內聯,左外聯,右外聯,全連線,交叉連線 的區別
- Oracle 內外連線 join 總結Oracle
- sql內連結,外連線SQL
- sql 內連線和外連線SQL
- oracle外連線Oracle
- MySQL筆記3——內連線/外連線、多表連線MySql筆記
- sql和hql中join語句區別,以及hibernate中內連線,迫切內連線,左外連線,迫切左外連線,右外連線的區別(合集)...SQL
- mysql 外連線總結MySql
- 內連線、左連線、右連線
- 外連線與連線順序
- SQL SERVER 自連線、外連線SQLServer
- 資料庫外連線,自然連線,內連線,條件連線,等值連線關係及詳解資料庫
- 外連線轉換為內連線的情況
- 轉載:內連線與外連線的區別
- 你真的會玩SQL嗎?內連線、外連線SQL
- mysql 左連線,右連線,內連結,exists等MySql
- Oracle左連線,右連線Oracle
- oracle 外連線的使用Oracle
- 3.DQL資料查詢語言(內連線,外連線,自連線)
- 行的儲存(塊內連線與塊外連線)
- SQL Server中內連線和外連線的區別SQLServer
- Mysql——內外連線,事物,索引MySql索引
- mysql左外連線MySql
- sybase的外連線
- MYSQL學習筆記23: 多表查詢(自連線內連線+左右外連線)MySql筆記
- 深入淺出SQL之左連線、右連線和全連線SQL
- 外連線的一些總結