資料庫的內連線和外連線的區別
阿新 • • 發佈:2019-01-22
內連線:指連線結果僅包含符合連線條件的行,參與連線的兩個表都應該符合連線條件。
外連線:連線結果不僅包含符合連線條件的行同時也包含自身不符合條件的行。包括左外連線、右外連線和全外連線。
左外連線:左邊表資料行全部保留,右邊表保留符合連線條件的行。
右外連線:右邊表資料行全部保留,左邊表保留符合連線條件的行。
全外連線:左外連線 union 右外連線。
示例:
資料庫版本:Oracle
表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 |
結果:
三個表做左外連結:
SELECT * FROM TESTA LEFT OUTER JOIN TESTB ON TESTA.A=TESTB.A LEFT OUTER JOIN TESTC ON TESTA.A=TESTC.A |
結果:
2. 右外連線 right outer join 或者 right join
右外連線是在等值連線的基礎上加上被連線表的不匹配資料
SELECT * FROM TESTA RIGHT OUTER JOIN TESTB ON TESTA.A=TESTB.A |
3.全外連線 full outer join 或者 full join
全外連線是在等值連線的基礎上將左表和右表的未匹配資料都加上。
SELECT * FROM TESTA FULL OUTER JOIN TESTB ON TESTA.A=TESTB.A |
結果: