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

MySQL 聯結查詢四大類型全解析:INNER、LEFT、RIGHT、FULL JOIN 差異與記憶口訣

     編輯:MySQL 綜合教學

前言

MySQL 聯結查詢分為內聯結、外聯結(左/右)、全聯結四類。本文以圖解邏輯與記憶口訣,幫助快速掌握各類型差異與適用場景。

四大聯結類型對照

類型關鍵字結果集包含Venn 圖邏輯
內聯結INNER JOIN兩表都符合條件的列交集
左外聯結LEFT JOIN左表所有列 + 右表符合條件列(無則 NULL)左集合完整
右外聯結RIGHT JOIN右表所有列 + 左表符合條件列(無則 NULL)右集合完整
全外聯結FULL JOIN兩表所有列(MySQL 不直接支援,需 UNION 模擬)並集

語法範例

內聯結

SELECT A.name, B.name 
FROM A 
INNER JOIN B ON A.id = B.id;

左外聯結

SELECT A.name, B.name 
FROM A 
LEFT JOIN B ON A.id = B.id;

結果必含 A 所有列,B 無對應處為 NULL。

右外聯結

SELECT A.name, B.name 
FROM B 
RIGHT JOIN A ON B.id = A.id;

等價於 A LEFT JOIN B,僅表順序互換。

全外聯結(MySQL 模擬)

SELECT * FROM A LEFT JOIN B ON A.id = B.id
UNION
SELECT * FROM A RIGHT JOIN B ON A.id = B.id;

記憶口訣

「內去外留,左記右忘」

  • 內聯結:去除所有不符合條件的列(只保留交集)。
  • 外聯結:留保其中一邊所有列。
  • 左聯結:記住左表(左表全保留)。
  • 右聯結:忘記左表(右表全保留,左表只留符合條件)。

自聯結

同一張表自我 JOIN,需使用別名:

SELECT e1.name AS employee, e2.name AS manager
FROM employee e1
LEFT JOIN employee e2 ON e1.manager_id = e2.id;

相關延伸閱讀

  • MySQL 排序使用情況
  • MySQL 多表查詢實現
  • MySQL 建立函數問題處理方法
  • MySQL Open_Table 合理配置
  • MySQL 隨機查詢優化實例
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved