SQL 中的合併查詢(Join)是用於將兩個或多個表格的數據基於共同的欄位進行合併。在 SQL 中,外部合併查詢(Outer Join)指令可以分為三種,每種都根據包含數據的方式有所不同:
左外合併(Left Outer Join):
語法:LEFT OUTER JOIN 或簡寫為 LEFT JOIN
功能:返回左表(left table)的所有記錄和右表(right table)中匹配的記錄。如果右表中沒有匹配,結果將顯示左表的記錄和右表中的 NULL 值。
右外合併(Right Outer Join):
語法:RIGHT OUTER JOIN 或簡寫為 RIGHT JOIN
功能:返回右表的所有記錄和左表中匹配的記錄。如果左表中沒有匹配,結果將顯示右表的記錄和左表中的 NULL 值。
全外合併(Full Outer Join):
語法:FULL OUTER JOIN 或簡寫為 FULL JOIN
功能:返回左表和右表中所有的記錄。當某一側沒有匹配時,該側將顯示 NULL 值。這種合併包含了左外合併和右外合併的所有記錄。
此外,還有一種常見的合併查詢是內部合併查詢(Inner Join):
內部合併(Inner Join):
語法:INNER JOIN
功能:僅返回兩個表格中有匹配的那些記錄。如果表格的一側存在無法在另一側找到匹配的記錄,這些記錄將不會出現在查詢結果中。
四者之間的差異:
Inner Join:嚴格返回兩個表中都匹配的記錄,若無匹配則不顯示。
Left Outer Join:返回左表的所有記錄和右表中與之匹配的記錄,無匹配的左表記錄會與右表的 NULL 值一起顯示。
Right Outer Join:返回右表的所有記錄和左表中與之匹配的記錄,無匹配的右表記錄會與左表的 NULL 值一起顯示。
Full Outer Join:結合左外合併和右外合併的特點,顯示兩個表中所有記錄,不匹配的部分顯示 NULL 值。
這些合併查詢的使用取決於你需要從數據表中獲取的信息類型以及表與表之間的數據關聯方式。