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

MySQL LEFT JOIN 與 RIGHT JOIN 實戰教學:語法、IS NULL 反查、結果集差異圖解

     編輯:MySQL 綜合教學

LEFT JOIN:左表全保留

user 表
LEFT JOIN 結果

  • aid=4 無對應用戶 → username=NULL,但文章行保留
  • uid=3 用戶無文章 → 不出現在結果(因為是左表驅動)

反查:找出無匹配的左表行

SELECT a.aid, a.title, u.username
FROM article a
RIGHT JOIN user u ON a.uid = u.uid;

article 表 user 表 RIGHT JOIN 結果

  • 結果與 LEFT JOIN「鏡像對稱」
  • username='Jack' 無文章 → aid=NULL, title=NULL

反查:找出無匹配的右表行

特性LEFT JOINRIGHT JOIN

保留哪側左表 (table1)右表 (table2)
無匹配時右表欄位置 NULL左表欄位置 NULL
反查條件WHERE right.col IS NULLWHERE left.col IS NULL
可互換性交換表順序即可轉換同上


建議:統一使用 LEFT JOIN,通過調整表順序實現邏輯,減少認知負擔。

效能提示

  • 驅動表(保留側)結果集應盡量小,利用 WHERE 過濾
  • 被驅動表(匹配側)關聯欄位必須有索引
  • 避免 SELECT *,只取需要欄位減少網路與緩衝壓力
  • 大表 LEFT JOIN 小表通常比 RIGHT JOIN 大表更直觀
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved