left join 與left outer 不同的join
A
left join B 連接記錄數(shù)與A表記錄數(shù)相同。
A
right join B 連接的記錄數(shù)與B表的記錄數(shù)相同
A
left join B 等價(jià)B right join A
table A:
Field_K, Field_A
1 a
3 b
4 c
table B:
Field_K, Field_B
1 x
2 y
4 z
select a.Field_K, a.Field_A, b.Field_K, b.Field_B
from a left join b on a.Field_K = b.Field_K
Field_K Field_A Field_K Field_B
-- -------- ---------- ---------- ----------
1 a 1 x
3 b NULL NULL
4 c 4 z
select a.Field_K, a.Field_A, b.Field_K, b.Field_B
from a right join b on a.Field_K = b.Field_K
Field_K Field_A Field_K Field_B
-- -------- ---------- ---------- ----------
1 a 1 x
NULL NULL 2 y
4 c 4 z --
舉個(gè)例子:
假設(shè)a表和b表格信息是這樣的。
a b
id nameid stock
1 a 1 15
2 b 2 50
3 c
select * from a inner join b on a.id = b.id
這一語法是連接查詢中的內(nèi)部連接,其結(jié)果是
在結(jié)果列表中出現(xiàn)了兩個(gè)表相匹配的記錄。
從上表來看,結(jié)果是這樣的。
a.id name b.id stock
1 a 1 15
2 b 2 50
-- --------------------------
select * from a,b where a.id = b.id
這種語法是另一種內(nèi)部連接的寫作方法,它的執(zhí)行結(jié)果與inner
join 一樣
-- ------------------------------
select * from a left / right join b on a.id = b.id
在外部連接語法中,這是左外連接或右外連接。
若為左外連接,則顯示a表格全部記錄,
select a. * ,b. * from a left join b on a.id = b.id
查詢結(jié)果如下:
a.id name b.id stock
1 a 1 15
2 b 2 50
3 c null null
-- ------------------------------------------
若為右外連接,則顯示b所有表格記錄,
select a. * ,b. * from a right join b on a.id = b.id
查詢結(jié)果如下:
a.id name b.id stock
1 a 1 15
2 b 2 50
--
select a.
* ,b. * from a left join b on a.k = b.k
select
a. * ,b. * from a left outer join b on a.k = b.k
--
--------上邊兩個(gè)相同的left。 join是left outer 簡寫join
select a. * ,b. * from a left inner join b on a.k = b.k
沒有這樣的寫法,錯(cuò)誤的句子.
--
現(xiàn)在你想用多個(gè)left 時(shí)間是join
比如說10個(gè)
我們把10個(gè)全部寫成left。 join的方法
接著SQL讓他自動(dòng)運(yùn)轉(zhuǎn),它會(huì)把最后一次出現(xiàn)的left 把join變成left outer
join
所以這個(gè)推理,最后一個(gè)left join將使用left outer 存在join的形式
當(dāng)然,不管變化對結(jié)果的顯示沒有任何影響。
但愿我的實(shí)驗(yàn)對你有幫助。
本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請?jiān)谖闹凶⒚鱽碓醇白髡呙帧?/p>
免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com