SQL left join與right join

之前一直對左右連接的區(qū)別與聯(lián)系模糊不清,今天自己做了一個(gè)例子,清晰易懂。

  1. 首先 建兩張表:表a 、表b
表a.png
表b.png
left join
  • 先看這一種情況:
SELECT *
FROM a A
LEFT JOIN b B
ON A.id=B.id

查詢結(jié)果:

left join.png

left join 左邊是主表,即主表是a表,所以優(yōu)先參考a,在b表中沒有對應(yīng)的數(shù)據(jù)就顯示為空。

  • 第二種情況:
SELECT *
FROM b B
LEFT JOIN a A
ON A.id=B.id

查詢結(jié)果:


left join.png

這種情況主表是 b 表,所以優(yōu)先考慮b表數(shù)據(jù),對應(yīng)的在a表中沒有的數(shù)據(jù)顯示為null,但是不存在這種情況,所以只能顯示a表中,符合條件的兩條數(shù)據(jù)。

同時(shí)可以發(fā)現(xiàn),在sql語句中,from后面先出現(xiàn)的表,在查詢的時(shí)候最先顯示出來。
同理,在select 的后面,先查詢的字段會(huì)在查詢結(jié)果中,先顯示出來。
right join
  • 第一種情況:
SELECT *
FROM a A
RIGHT JOIN b B
ON A.id=B.id

查詢結(jié)果:

right join.png
可以看到與 left join 的第二種情況 查詢的數(shù)據(jù)是一樣的,但是表中顯示的結(jié)果是相反的。
  • 第二種情況:
SELECT *
FROM b B
RIGHT JOIN a A
ON A.id=B.id

查詢結(jié)果:

right join.png
可以看到與 left join 的第一種情況,查詢數(shù)據(jù)一樣,但是顯示順序是相反的。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容