資料庫版本:Oracle 9i
表TESTA,TESTB,TESTC,各有A, B兩列
連接配接分為兩種:内連接配接與外連接配接。
A.内連接配接
内連接配接,即最常見的等值連接配接,例:
SELECT *
FROM TESTA,TESTB
WHERE TESTA.A=TESTB.A
結果
B.外連接配接
外連接配接分為左外連接配接,右外連接配接和全外連接配接。
1. 左外連接配接 left outer join 或者 left join
左外連接配接就是在等值連接配接的基礎上加上主表中的未比對資料,例:
SELECT *
FROM TESTA
LEFT OUTER JOIN TESTB
ON TESTA.A=TESTB.A
Oracle 支援另一種寫法
WHERE TESTA.A=TESTB.A(+)
結果:
三個表做左外連接配接
LEFT OUTER JOIN TESTC
ON TESTA.A=TESTC.A
Oracle 支援的另外一種寫法
FROM TESTA,TESTB,TESTC
AND TESTA.A=TESTC.A(+)
2.右外連接配接 right outer join 或者 right join
右外連接配接是在等值連接配接的基礎上加上被連接配接表的不比對資料
RIGHT OUTER JOIN TESTB
Oracle支援的另一種寫法
WHERE TESTA.A(+)=TESTB.A
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
UNION
FROM TESTB
LEFT OUTER JOIN TESTA
本文轉自terryli51CTO部落格,原文連結: http://blog.51cto.com/terryli/520834,如需轉載請自行聯系原作者