在資料庫查詢中,內連線(INNER JOIN)、左連線(LEFT JOIN)、右連線(RIGHT JOIN)是不同型別的連線操作,用於在兩個表之間根據某些條件組合它們的行。下面是每種連線的簡要說明:
-
內連線(INNER JOIN):
- 內連線返回兩個表中滿足連線條件的行。
- 如果連線條件不滿足,那麼相關的行將不會被包括在結果集中。
- 語法示例:
SELECT * FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
-
左連線(LEFT JOIN 或 LEFT OUTER JOIN):
- 左連線返回左表(即在JOIN關鍵字之前的表)的所有行,即使右表中沒有匹配的行。
- 如果右表中沒有匹配的行,結果集中右表的部分將顯示為NULL。
- 語法示例:
SELECT * FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
-
右連線(RIGHT JOIN 或 RIGHT OUTER JOIN):
- 右連線返回右表(即在JOIN關鍵字之後的表)的所有行,即使左表中沒有匹配的行。
- 如果左表中沒有匹配的行,結果集中左表的部分將顯示為NULL。
- 語法示例:
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
在實際應用中,左連線是最常用的,因為它允許你獲取左表的所有資料,並儘可能地獲取右表中與左表匹配的資料。右連線的使用較少,因為通常可以透過調整表的順序來達到相同的效果(即將右表作為左表,左表作為右表)。
另外,還有全外連線(FULL OUTER JOIN),它返回兩個表中滿足連線條件的所有行,以及不滿足條件的行,這些不滿足條件的行在結果集中相應的表的部分將顯示為NULL。不過,並非所有的資料庫系統都支援全外連線。