mysql join是什麼意思

2022-11-11 18:01:41

在mysql中,join的意思為「連線」,連線的主要作用是根據兩個或多個表中的列之間的關係,獲取存在於不同表中的資料。join是指將兩個表連線起來,兩個表分別為「驅動表」和「被驅動表」。join連線分為三類:1、內連線,可查詢出的資料是兩張表的交集;2、外連線,會先將連線的表分為基表和參考表,再以基表為依據返回滿足和不滿足條件的記錄;3、全連線,可查詢出左右兩表的所有資料。

程式設計師必備介面測試偵錯工具:

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

大家對join應該都不會陌生,join可以將兩個表連線起來。

join介紹

join 是指 將兩個表連線起來,兩個表分別為 驅動表 和 被驅動表。

資料庫中的join成為連線,連線的主要作用是根據兩個或多個表中的列之間的關係,獲取存在於不同表中的資料。連線分為三類:內連線、外連線、全連線

join範例

1.內連線
內連線查詢出的資料是兩張表的交集,即上圖中紅色所表示的部分。

1.png

2.左外連線
左外連線如圖中紅色部分的內容,即包含左邊表的全部行(不管右邊的表中是否存在與它匹配的行),和右邊表中全部匹配的行。

2.png

3.右外連線
右外連線如圖中紅色部分的內容,即包含右邊表的全部行(不管左邊的表中是否存在與它匹配的行),和左邊表中全部匹配行。

3.png

4.左連線

左連線如圖中紅色部分的內容,查詢出左表獨有的資料

4.png

解析:其實上圖就是在左外連線的基礎上進行的,左外連線得到了左表,但是左表裡還包含了一部分左右表都具有相同資料的區 域,這時需要將這部分相同資料去掉,去除的條件就是B.key IS NULL

5.png

5.右連線

如果看懂了上面的左連線,那麼右連線大同小異,就是查詢出右表獨有的資料

6.png

6.全連線(Mysql中不支援下圖寫法)

查詢出左右兩表的所有資料

7.png

但是!MySQL中並不支援這種寫法,所以只能通過別的方法。

A、B的所有也就是A的獨有、B的獨有 和A、B的共同擁有的資料

Mysql中可以使用:select * from Table A left join Table B on A.Key = B.Key (找出A的所有)

union (去重)

select * from Table A right join Table B on A.Key = B.Key (找出B的所有)

7.全外連線(Mysql中不支援下圖寫法)

左右表的共有資料之外的資料查詢

8.png

篩選出對於A表而言B為空,對於B表而言A為空的

MySQL中也不支援這種寫法,所以只能通過別的方法。

其實全外連線也就是A的獨有+B的獨有

Mysql語法: select * from Table A left join Table B on A.Key = B.Key where B.Key is null (找出A的獨有)

union (去重)

select * from Table A right join Table B on A.Key = B.Key where A.Key is null (找出B的獨有)

【相關推薦:】

以上就是mysql join是什麼意思的詳細內容,更多請關注TW511.COM其它相關文章!