1. 程式人生 > >資料庫的內連線和外連線的區別

資料庫的內連線和外連線的區別

內連線:指連線結果僅包含符合連線條件的行,參與連線的兩個表都應該符合連線條件。

外連線:連線結果不僅包含符合連線條件的行同時也包含自身不符合條件的行。包括左外連線、右外連線和全外連線。

左外連線:左邊表資料行全部保留,右邊表保留符合連線條件的行。

右外連線:右邊表資料行全部保留,左邊表保留符合連線條件的行。

全外連線:左外連線 union 右外連線。

示例:

資料庫版本:Oracle

表TESTA,TESTB,TESTC,各有A, B兩列。

A.內連線

內連線,即最常見的等值連線,例:

SELECT FROM TESTA,TESTBWHERE 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.ALEFT OUTER JOIN TESTCON 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 TESTBON TESTA.A=TESTB.A

結果: