連線查詢

Jks&發表於2024-06-20

在資料庫查詢中,內連線(INNER JOIN)、左連線(LEFT JOIN)、右連線(RIGHT JOIN)是不同型別的連線操作,用於在兩個表之間根據某些條件組合它們的行。下面是每種連線的簡要說明:

  1. 內連線(INNER JOIN)

    • 內連線返回兩個表中滿足連線條件的行。
    • 如果連線條件不滿足,那麼相關的行將不會被包括在結果集中。
    • 語法示例:
      SELECT *
      FROM table1
      INNER JOIN table2
      ON table1.column_name = table2.column_name;
      
  2. 左連線(LEFT JOIN 或 LEFT OUTER JOIN)

    • 左連線返回左表(即在JOIN關鍵字之前的表)的所有行,即使右表中沒有匹配的行。
    • 如果右表中沒有匹配的行,結果集中右表的部分將顯示為NULL。
    • 語法示例:
      SELECT *
      FROM table1
      LEFT JOIN table2
      ON table1.column_name = table2.column_name;
      
  3. 右連線(RIGHT JOIN 或 RIGHT OUTER JOIN)

    • 右連線返回右表(即在JOIN關鍵字之後的表)的所有行,即使左表中沒有匹配的行。
    • 如果左表中沒有匹配的行,結果集中左表的部分將顯示為NULL。
    • 語法示例:
      SELECT *
      FROM table1
      RIGHT JOIN table2
      ON table1.column_name = table2.column_name;
      

在實際應用中,左連線是最常用的,因為它允許你獲取左表的所有資料,並儘可能地獲取右表中與左表匹配的資料。右連線的使用較少,因為通常可以透過調整表的順序來達到相同的效果(即將右表作為左表,左表作為右表)。

另外,還有全外連線(FULL OUTER JOIN),它返回兩個表中滿足連線條件的所有行,以及不滿足條件的行,這些不滿足條件的行在結果集中相應的表的部分將顯示為NULL。不過,並非所有的資料庫系統都支援全外連線。

相關文章