您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)mysql左連接與內(nèi)連接的區(qū)別是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
采用left join。
以前一直在想什么時(shí)候能用到left join 、 inner join ,這次可給我上了一課。
關(guān)于它們之間的區(qū)別,可以看看下面這篇文章:
inner join 與 left join 之間的區(qū)別
這里復(fù)制一小段:
關(guān)于inner join 與 left join 之間的區(qū)別,以前以為自己搞懂了,今天從前端取參數(shù)的時(shí)候發(fā)現(xiàn)不是預(yù)想中的結(jié)果,才知道問(wèn)題出在inner join 上了。
需求是從數(shù)據(jù)庫(kù)查數(shù)據(jù),在前端以柱形圖的形式展現(xiàn)出來(lái),查到的數(shù)據(jù)按行業(yè)分組,顯示每個(gè)行業(yè)的戶數(shù)及戶數(shù)占比,涉及到的字段有A表的用戶數(shù)、總用戶數(shù)和B表的行業(yè)名稱。本來(lái)是不管查不查的到數(shù)據(jù),在X軸都應(yīng)該顯示行業(yè)名稱的,結(jié)果是X、Y軸都沒(méi)有任何數(shù)據(jù)顯示。問(wèn)題就是我用錯(cuò)了聯(lián)結(jié)方式。
一、sql的left join 、right join 、inner join之間的區(qū)別
left join(左聯(lián)接) 返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄
right join(右聯(lián)接) 返回包括右表中的所有記錄和左表中聯(lián)結(jié)字段相等的記錄
inner join(等值連接) 只返回兩個(gè)表中聯(lián)結(jié)字段相等的行
舉例如下:
表A記錄如下:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表B記錄如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
1.left join
sql語(yǔ)句如下:
select * from A left join B on A.aID = B.bID
結(jié)果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL(所影響的行數(shù)為 5 行)
結(jié)果說(shuō)明:
left join是以A表的記錄為基礎(chǔ)的,A可以看成左表,B可以看成右表,left join是以左表為準(zhǔn)的.
換句話說(shuō),左表(A)的記錄將會(huì)全部表示出來(lái),而右表(B)只會(huì)顯示符合搜索條件的記錄(例子中為: A.aID = B.bID).
B表記錄不足的地方均為NULL.
看完上述內(nèi)容,你們對(duì)mysql左連接與內(nèi)連接的區(qū)別是什么有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。