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

SQL 查詢方法總結:內連結、外連結、交叉連結語法與自然連結/不等連結詳解

     編輯:MySQL 綜合教學

SQL-92 FROM 子句連接語法

FROM join_table join_type join_table [ON (join_condition)]
  • join_table:參與連接的表(可為同一表 → 自連接)。
  • join_type:內連結、外連結、交叉連結。
  • ON (join_condition):連接條件(欄位、比較/邏輯運算子)。

三大連接類型

1. 內連結

  • 等值連結:= 比較,結果含重複欄位。
  • 自然連結:= 比較 + 選擇清單去重複欄位。
  • 不等連結:> >= < <= <> != !> !< 等非等號運算子。
-- 等值連結:同城市作者與出版社
SELECT * FROM authors a INNER JOIN publishers p ON a.city = p.city;

-- 自然連結:去重 city、state
SELECT a.*, p.pub_id, p.pub_name, p.country
FROM authors a INNER JOIN publishers p ON a.city = p.city;

2. 外連結

  • LEFT OUTER JOIN:左表全保留,右表無匹配則 NULL。
  • RIGHT OUTER JOIN:右表全保留,左表無匹配則 NULL。
  • FULL OUTER JOIN:雙表全保留(MySQL 不直接支援,用 UNION 模擬)。
SELECT field1, field2 FROM table1 LEFT JOIN table2 ON table1.id = table2.id
WHERE table1.field3 = table2.field3;

3. 交叉連結

CROSS JOIN:無 WHERE,產生笛卡兒積。行數 = 左表行數 × 右表行數。

SELECT type, pub_name FROM titles CROSS JOIN publishers ORDER BY type;
-- 6 類書 × 8 社 = 48 行

特殊限制

無法直接連接 text/ntext/image 型別欄位,可用 DATALENGTH() 等間接比較。

結語

掌握內/外/交叉連結語意與語法,配合自然連結去重、不等連結篩選,構建精準高效的多表查詢。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved