天天看點

left join、right join和join,傻傻分不清?

雲栖号資訊:【 點選檢視更多行業資訊

在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

今天來說說關于mySQL那些年的小事。

說到mySQL啊,用了挺久的了,但是有個問題一直在困擾着我,就是left join、join、right join和inner join等等各種join的差別。網上搜,最常見的就是一張圖解圖,如下:

left join、right join和join,傻傻分不清?

真的是一張圖道清所有join的差別啊,可惜我還是看不懂,可能人比較懶,然後基本一個left join給我就是夠用的了,是以就沒怎麼去仔細研究了,但是現實還是逼我去搞清楚,索性自己動手,總算了解圖中的含義了,下面就聽我一一道來。

首先,我們先來建兩張表,第一張表命名為kemu,第二張表命名為score:

left join、right join和join,傻傻分不清?

一、left join

顧名思義,就是“左連接配接”,表1左連接配接表2,以左為主,表示以表1為主,關聯上表2的資料,查出來的結果顯示左邊的所有資料,然後右邊顯示的是和左邊有交集部分的資料。如下:

select
   *
from
   kemu
left join score on kemu.id = score.id           

結果集:

left join、right join和join,傻傻分不清?

二、right join

“右連接配接”,表1右連接配接表2,以右為主,表示以表2為主,關聯查詢表1的資料,查出表2所有資料以及表1和表2有交集的資料,如下:

select
   *
from
   kemu
right join score on kemu.id = score.id           
left join、right join和join,傻傻分不清?

三、join

join,其實就是“inner join”,為了簡寫才寫成join,兩個是表示一個的,内連接配接,表示以兩個表的交集為主,查出來是兩個表有交集的部分,其餘沒有關聯就不額外顯示出來,這個用的情況也是挺多的,如下

select
   *
from
   kemu
join score on kemu.id = score.id           
left join、right join和join,傻傻分不清?

以上就是三種連接配接的差別!

【雲栖号線上課堂】每天都有産品技術專家分享!

課程位址:

https://yqh.aliyun.com/live

立即加入社群,與專家面對面,及時了解課程最新動态!

【雲栖号線上課堂 社群】

https://c.tb.cn/F3.Z8gvnK

原文釋出時間:2020-06-11

本文作者:京東_松花皮蛋me

本文來自:“

掘金

”,了解相關資訊可以關注“掘金”

繼續閱讀