之前一直對左右連接的區(qū)別與聯(lián)系模糊不清,今天自己做了一個(gè)例子锋拖,清晰易懂。
- 首先 建兩張表:表a 棚品、表b
left join
- 先看這一種情況:
SELECT *
FROM a A
LEFT JOIN b B
ON A.id=B.id
查詢結(jié)果:
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é)果:
這種情況主表是 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 的后面铺韧,先查詢的字段會在查詢結(jié)果中,先顯示出來缓淹。
right join
- 第一種情況:
SELECT *
FROM a A
RIGHT JOIN b B
ON A.id=B.id
查詢結(jié)果:
可以看到與 left join 的第二種情況 查詢的數(shù)據(jù)是一樣的哈打,但是表中顯示的結(jié)果是相反的。
- 第二種情況:
SELECT *
FROM b B
RIGHT JOIN a A
ON A.id=B.id
查詢結(jié)果: