sql left join on和right join ;join後面分別對應是左表和右表嗎?
- 2022-03-24
不,說反了。
從結果看,LEFT 或RIGHT恰好指的是前面的表的特徵。
FROM A ——A是左表
LEFT JOIN B ——B是關聯表,NULL值也出來
left join是以左表為準的。
左表(a)的記錄將會全部表示出來,而右表(b)只會顯示符合搜尋條件的記錄(例子中為: a。aid = b。bid)。
b表記錄不足的地方均為null。
ps:right join表理解相同
官方的解釋下:
inner join(等值連線):只返回兩個表中聯結欄位相等的行;
left join(左聯接):返回包括左表中的所有記錄和右表中聯結欄位相等的記錄;
right join(右聯接):返回包括右表中的所有記錄和左表中聯結欄位相等的記錄。
比如我們有xs、cj兩個表
xs表 cj表
————————- ————————————
id name id score
1 張三 1 96
2 李四 2 80
3 86
sql程式碼 1。
select
*
from
`xs`
inner
join `cj`
on
xs。id = cj。id select * from `xs` inner join `cj` on xs。id = cj。id
返回
————————————
id name id score
1 張三 1 96
2 李四 2 80
————————————-
sql程式碼 1。
select
*
from
`xs` left join `cj`
on
xs。id = cj。id select * from `xs` left join `cj` on xs。id = cj。id
返回
————————————
id name id score
1 張三 1 96
2 李四 2 80
————————————-
sql程式碼 1。
select
*
from
`xs` right join `cj`
on
xs。id = cj。id select * from `xs` right join `cj` on xs。id = cj。id
返回
id name id score
1 張三 1 96
2 李四 2 80
null null 3 86