在Oracle中,JOIN查詢一般分爲內連接查詢(inner join)和外連接查詢(outer join)
外連接查詢又分爲:左外連接查詢(left out join),右外連接查詢(right outer join)和全連接查詢(full outer join)
下面舉例說明:
有兩張表TESTA和TESTB如下:
1.內連接查詢(inner join)
內關聯查詢就是我們通常使用的等於查詢,SQL如下;
SELECT * FROM TESTA A, TESTB B WHERE A.FILED1 = B.FILED1;
查詢出來的視圖如下:
2. 左外連接查詢(left out join或者left join)
左外關聯查詢就是在等於查詢的基礎上再加上主表(左表)其餘的記錄,SQL如下:
SELECT * FROM TESTA A LEFT JOIN TESTB B ON a.filed1 = b.filed1;
左連接查詢還有一種寫法:
SELECT * FROM TESTA A, TESTB B WHERE A.FILED1 = B.FILED1(+);
查詢出來的視圖如下:
3.右外連接查詢(right outer join或right join)
右關聯查詢就是在等於查詢的基礎上加上右表其餘的記錄,SQL如下:
SELECT * FROM TESTA A RIGHT JOIN TESTB B ON a.filed1 = b.filed1;
右關聯查詢還有一種寫法,SQL如下:
SELECT * FROM TESTA A, TESTB B WHERE A.FILED1(+) = B.FILED1;
查詢出來的視圖如下:
4.全連接查詢(full outer join或者full join)
全關聯查詢是等於查詢加上左表和右表的其餘記錄,SQL如下:
SELECT * FROM TESTA A FULL JOIN TESTB B ON a.filed1 = b.filed1;
查詢出來的視圖如下:
針對以上4中join連接查詢,比較常用的是內連接和左連接。