【MySQL高級】七種JION理論和實例詳解

雖然項目一直在寫左外連接、內連接等等的sql,但是其實對具體的實現還是不太清楚,接下來跟我一起來了解一下吧!

1. INNER JON 內連接

在這裏插入圖片描述
對應的sql語句

select <select_list>
from table A a
INNER JOIN Table B b
ON A.key=B.key

實例

表1
在這裏插入圖片描述
執行結果
在這裏插入圖片描述
表2
在這裏插入圖片描述
執行結果
在這裏插入圖片描述
內連接
在這裏插入圖片描述
執行結果
在這裏插入圖片描述

分析

  • 可以看出,表1有6列,表2有3列,內連接有9列,說明內連接兩表的列拼接起來
  • 有重複的列username,並沒有合併,都顯示出來了
  • ON後爲連接條件,內連接只保留條件公有部分,就是保留a.id和b.user_id相等的行,即id=28,use_id=28的行保留下來

小結

內連接只有兩者的公有部分

2. LEFT JON 左外連接

圖解

在這裏插入圖片描述
對應的sql語句

select <select_list>
from table A a
LEFT JOIN Table B b
ON A.key=B.key

實例

在這裏插入圖片描述

在這裏插入圖片描述

分析

  • 左外連接就是兩表的列拼接起來,A表的數據都要,B表沒有的行補NULL
3. Right JION 右外連接

圖解

在這裏插入圖片描述
對應的sql

select <select_list>
from table A a
RIGHT JOIN Table B b
ON A.key=B.key

實例

sql
在這裏插入圖片描述
執行結果
在這裏插入圖片描述

分析

  • B表數據都要,A表沒有的自動補全
4. Right JION 右連接

圖解

在這裏插入圖片描述
對應的sql

select <select_list>
from table A a
LEFT JOIN Table B b
ON A.key=B.key
where A.key=NULL

實例

在這裏插入圖片描述
執行結果
在這裏插入圖片描述

5. LEFT JION 左連接

圖解

在這裏插入圖片描述
對應的sql

select <select_list>
from table A a
LEFT JOIN Table B b
ON A.key=B.key
where B.key=NULL

實例

在這裏插入圖片描述
執行結果
在這裏插入圖片描述

6. 全外連接

圖解

在這裏插入圖片描述

對應的sql

select <select_list>
from table A a
OUTER JOIN Table B b
ON A.key=B.key

實例

在這裏插入圖片描述
執行結果
在這裏插入圖片描述

小結

mysql不能直接操作全外連接,需要使用左外連接與右外連接的兩個結果集進行合併並去除重複。union 去重,union all 不去重。

7. 交叉外連接

圖解

在這裏插入圖片描述

對應的sql

select <select_list>
from table A a
OUTER JOIN Table B b
ON A.key=B.key
where B.key=NULL
AND A.key=NULL

實例

在這裏插入圖片描述
執行結果
在這裏插入圖片描述
暫不支持

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章