Mysql中l(wèi)eft join、right join和inner join(join)的區(qū)別及說明
前言
最近發(fā)現(xiàn)有很多小伙伴對于left join、right join和inner join(join)的區(qū)別不是很清楚,在項目中不管什么情況都一個left join去處理,可能有些時候會造成數(shù)據(jù)的冗余或者數(shù)據(jù)的不準(zhǔn)確。
所以下面我就以圖文的形式講解一下這三者的區(qū)別。
首先上圖,可能基礎(chǔ)強一點的小伙伴只需要這一張圖就可以很清楚很直觀的理解各種join的區(qū)別:
如果看完這張圖,還是一頭霧水,一張黑人問號臉并且心里想的是這都什么和什么?
我知道你有點著急了,但是你先別急,繼續(xù)往下看,下面我會用三個連接的實例讓大家更好的理解三者的區(qū)別。
首先創(chuàng)建兩張表:subject(科目表)、score(成績表)
那么接下來我們分別來看一下這三個join的區(qū)別:
1、Left Join
顧名思義,就是左連接
的意思,且數(shù)據(jù)以左表為主去關(guān)聯(lián)右表的數(shù)據(jù),查詢出的數(shù)據(jù)為左表所有符合條件的數(shù)據(jù)和右表中與左表有交集的數(shù)據(jù),如果右表中沒有與左表匹配的數(shù)據(jù),則結(jié)果集中將用Null去補全。
下面看示例:
SELECT * FROM `subject` LEFT JOIN score ON `subject`.id = score.id
結(jié)果集如下:
2、Right Join
右連接
,跟左連接查詢的結(jié)果恰好相反,右連接是以右表為主去關(guān)聯(lián)左表的數(shù)據(jù),查詢出的數(shù)據(jù)為右表所有符合條件的數(shù)據(jù)和左表中與右表有交集的數(shù)據(jù),如果左表中沒有與右表匹配的數(shù)據(jù),則結(jié)果集中將用Null補全。
下面看示例:
SELECT * FROM `subject` RIGHT JOIN score ON `subject`.id = score.id
結(jié)果集如下:
3、Join(Inner Join)
join其實就是inner join 只是簡寫而已,那么inner join顧名思義就是內(nèi)連接
的意思,查詢的數(shù)據(jù)是兩個表的交集。
下面看示例:
SELECT * FROM `subject` INNER JOIN score ON `subject`.id = score.id
結(jié)果集如下:
總結(jié)
以上就是三種連接的區(qū)別,不知道各位小伙伴看完之后是不是對于三種連接有了更深刻的認(rèn)識和理解,從一開始的"這都什么和什么?“轉(zhuǎn)變成"原來是這樣啊~”,那么搞懂了之后在項目開發(fā)過程中就可以更靈活的去使用三個連接而不是只用一個left join碼遍天下了!
這些為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解如何用SQL取出字段內(nèi)是json的數(shù)據(jù)
數(shù)據(jù)庫中會遇到字段里面存的JSON結(jié)果的數(shù)據(jù),那么如果我們想直接取到JSON里的值該怎么辦呢?其實SQL自帶的函數(shù)就可解決本文就詳細(xì)的給大家介紹了如何用SQL取出字段內(nèi)是json的數(shù)據(jù),需要的朋友可以參考下2023-10-10刪庫跑路?使用xtraback備份MySQL數(shù)據(jù)庫的方法
mysqldump備份方式是采用邏輯備份,最大的缺陷就是備份和恢復(fù)的速度都慢,這時候就需要一種很好用又高效的工具,xtraback 就是其中的一款,號稱免費版的innodb hotbackup。接下來通過本文給大介紹使用xtraback備份MySQL數(shù)據(jù)庫的方法,感興趣的朋友一起看看吧2018-10-10MySQL中使用innobackupex、xtrabackup進行大數(shù)據(jù)的備份和還原教程
這篇文章主要介紹了MySQL中使用innobackupex、xtrabackup進行大數(shù)據(jù)的備份和還原教程,xtrabackup用來對超過10G數(shù)據(jù)的Mysql進行備份和還原任務(wù),需要的朋友可以參考下2014-09-09windows下mysql 8.0.15 詳細(xì)安裝使用教程
這篇文章主要為大家詳細(xì)介紹了windows下mysql 8.0.15 詳細(xì)安裝使用教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08MySQL實現(xiàn)差集(Minus)和交集(Intersect)測試報告
MySQL沒有實現(xiàn)Minus和Intersect功能,就像它也沒有實現(xiàn)cube的功能一樣。2014-06-06