首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

MS SQL Server JOIN 聯結查詢完全指南:內聯結、外部聯結、自我聯結與複合條件

     編輯:關於SqlServer

聯結查詢透過共同欄位關聯性整合多表資料,是關聯式資料庫查詢的核心特徵。依聯結條件與資料保留方式分為五大類:

10.3.1 等值 vs 非等值聯結

  • 等值聯結:ON t1.col = t2.col 或 WHERE t1.col = t2.col。最常見,欄位型別需相容(不必相同)。
  • 非等值聯結:使用 >, <, >=, <=, <>, BETWEEN...AND 等運算子。單獨使用罕見,常與等值聯結組合成複合條件。

等值聯結兩種寫法 等值聯結範例 非等值聯結範例

10.3.2 自我聯結

表與自身聯結,需使用別名區分左右兩側。典型案例:查詢工齡相同的員工配對。

SELECT e1.name, e2.name
FROM employee e1 JOIN employee e2 ON e1.hire_date = e2.hire_date
WHERE e1.id < e2.id

自我聯結範例

10.3.3 外部聯結

保留主表所有列,從表無匹配時以 NULL 填補(BIT 型別填 0)。

完整外部聯結 FULL OUTER JOIN 保留雙邊所有列。

外部聯結範例

10.3.4 複合條件聯結

WHERE 或 ON 子句包含多個聯結條件(等值+非等值、多欄位等)。

複合條件聯結範例

現代語法建議

  • 優先使用 ANSI SQL-92 標準語法:FROM t1 INNER JOIN t2 ON ...,將聯結條件與篩選條件分離,可讀性與維護性優於舊式 WHERE 聯結。
  • 外部聯結必須使用標準語法(舊式 *=/=* 已棄用)。

總結

掌握五大聯結類型、標準語法與 NULL 語意,是撰寫正確、高效多表查詢的基石。實務中 90%+ 案例為內聯結與左外部聯結,熟練這兩者即可應付絕大多數業務場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
類型主表位置語法
左外部聯結左側LEFT OUTER JOIN / LEFT JOIN
右外部聯結右側RIGHT OUTER JOIN / RIGHT JOIN