常見 Join
語法為下,將個別說明:
這是最簡單、最容易理解並且最常見的 Join
。此查詢將返回在右表(表 B)中具有匹配記錄的左表(表 A)中的所有記錄。以下為 Join
範例:
SELECT <select_list>
FROM Table_A A
INNER JOIN Table_B B
ON A.Key = B.Key
此查詢將返回左表(表 A)中的所有記錄,而不管這些記錄中的任何記錄是否在右表(表 B)中具有匹配項。它還將從右表中返回任何匹配的記錄。以下為 LEFT JOIN
範例:
SELECT <select_list>
FROM Table_A A
LEFT JOIN Table_B B
ON A.Key = B.Key
此查詢將返回右表(表 B)中的所有記錄,無論這些記錄中的任何記錄是否在左表(表 A)中具有匹配項。它還將從左表中返回任何匹配的記錄。以下為 RIGHT JOIN
範例:
SELECT <select_list>
FROM Table_A A
RIGHT JOIN Table_B B
ON A.Key = B.Key
這個 JOIN
可以被稱為 FULL OUTER JOIN
或 FULL JOIN
。這個查詢會返回兩個表中的所有記錄,將左表(表 A)中的記錄與右表(表 B)中的記錄相匹配。這個 JOIN
的語法如下:
SELECT <select_list>
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.Key = B.Key
這個查詢會返回左表(表 A)中與右表(表 B)中的任何記錄都不匹配的所有記錄。換句話說,它將返回左表中沒有與右表匹配的記錄。
SELECT <select_list>
FROM Table_A A
LEFT JOIN Table_B B
ON A.Key = B.Key
WHERE B.Key IS NULL
這個查詢會返回右表(表 B)中與左表(表 A)中的任何記錄都不匹配的所有記錄。換句話說,它將返回右表中沒有與左表匹配的記錄。這個 JOIN
的語法可以這樣寫:
SELECT <select_list>
FROM Table_A A
RIGHT JOIN Table_B B
ON A.Key = B.Key
WHERE A.Key IS NULL
這個查詢會返回左表(表 A)中所有不匹配的記錄和右表(表 B)中的所有記錄。換句話說,它將返回左表中沒有與右表匹配的記錄,以及右表中所有的記錄。雖然您目前沒有使用這種類型的 JOIN
,但您經常使用其他類型的 JOIN
。這個 JOIN
的語法可以這樣寫:
SELECT <select_list>
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.Key = B.Key
WHERE A.Key IS NULL OR B.Key IS NULL