【小(xiǎo)編推薦】mysql中left join、rig÷ &ht join、inner join的(de)區(qū)别

2016-03-28   |&n¥≈bsp;  發布者:梁國(guó)芳  ®✘; |   查看(kàn<₹ ):3320次

php
 

 

left join(左聯接) 返回包括左表中的(de✔> <)所有(yǒu)記錄和(hé)右表中聯結字段相§©₽(xiàng)等的(de)記錄 
right join(右聯接) 返回包括右表≈↑≥中的(de)所有(yǒu)記錄和(hé)左表中聯結字段相(xiàng)等的(dβ​♣βe)記錄
inner join(等值連接) 隻返回兩個(gè)表中聯結字↑₹段相(xiàng)等的(de)行(xíng)

舉例如(rú)下(xià): 
------------------------★©™₽--------------------
表A記錄如(rú)下(xià):
aID     aNum
1     a20050111
2     a20050112
3     a20050113
4     a20050114
5     a20050115

表B記錄如(rú)下(xià):
bID     bName
1     2006032401
2     2006032402
3     2006032403
4     2006032404
8     2006032408

-------------------------------------♥•-------
1.left join
sql語句如(rú)下(xià): 
select * from A
left join B 
on A.aID = B.bID

結果如(rú)下(xià):
aID     aNum     bID  ✔β   bName
1     a20050111    1'≈     2006032401
2     a20050112    2     2006032∑£™402
3     a20050113    3     20≤≤Ωβ06032403
4     a20050114    4     2☆★ε006032404
5     a20050115    NULL   §π  NULL

(所影(yǐng)響的(de)行(xíng)數(shù)為(wèi) $♥ ×5 行(xíng))
結果說(shuō)明(míng):
left join是(shì)以A表的(de)記 ←₽σ錄為(wèi)基礎的(de),A可(kě)以看(±÷↕kàn)成左表,B可(kě)以看(kàn)成右表,left join是(s₽✔∞ hì)以左表為(wèi)準的(de).
換句話(huà)說(shuō),左表(A)的α¶☆(de)記錄将會(huì)全部表示出來(lái),而右表( ←± B)隻會(huì)顯示符合搜索條件(jiàn)的(de"↓₩≠)記錄(例子(zǐ)中為(wèi): A.aID = B.bIΩ≤D).
B表記錄不(bù)足的(de)地(dì)方均為(wèi)NU★↑×♠LL.
---------------------------εγλ$-----------------
2.right join
sql語句如(rú)下(xià):&nbsγλ¶ p;
select * from A
right join B 
on A.aID = B.bID

結果如(rú)下(xià):
aID     aNum     bID    ♠‌× bName
1     a20050111    1     2006032401
2     a20050112    2 ✔​‌>    2006032402
3     a20050113    3     2006032403
4     a20050114    4    ÷↓♠ 2006032404
NULL     NULL     8     2₽σ£006032408

(所影(yǐng)響的(de)行(xíng)數(shùα≥Ω★)為(wèi) 5 行(xíng))
結果說(shuō)明(míng):
仔細觀察一(yī)下(xià),就(jiù)會(huì)發現(xiàn)≤$€,和(hé)left join的(de)結果剛好(hǎo)相(xiàng₽✔)反,這(zhè)次是(shì)以右表(B)為(wèi)基礎的(de),α☆‍A表不(bù)足的(de)地(dì)方用(yòng)NULL填充.
-----------------------₹λ✔♣---------------------
3.inner join
sql語句如(rú)下(xià): 
select * from A
innerjoin B 
on A.aID = B.bID

結果如(rú)下(xià):
aID     aNum     bID     ₽₩ bName
1     a20050111    1 ®§€©    2006032401
2     a20050112    2     2006032402
3     a20050113    3     2006032403£↓§
4     a20050114    4 ≥α÷®    2006032404

結果說(shuō)明(míng):
很(hěn)明(míng)顯,這(zhè)裡(lǐ)隻顯示出了(le) A" & .aID = B.bID的(de)記錄.這≥₩(zhè)說(shuō)明(míng)inδ •ner join并不(bù)以誰為(wèi"↕£™)基礎,它隻顯示符合條件(jiàn)的(de®±•≤)記錄.
----------------------------------♠‍​----------
注: 
LEFT JOIN操作(zuò)用(yòng)于在任何的(de) FROM ★$子(zǐ)句中,組合來(lái)源表的(de)記錄。使用(yòng) LE↔  FT JOIN 運算(suàn)來(lái)創建一₩✘(yī)個(gè)左邊外(wài)部聯接。左邊外(wài)部聯接将包♦₽₽含了(le)從(cóng)第一(yī)個(gè)(左邊)開(kε♦♠āi)始的(de)兩個(gè)表中的(de)全部記錄,即使在第二個(gèγε×✘)(右邊)表中并沒有(yǒu)相(xiàng)符值的(de €♦‍)記錄。

語法:FROM table1 LEFT JOIN table2 ON φ♠×✘table1.field1 compopr table2.fiel λ→←d2

說(shuō)明(míng):table1, table2參數(Ω↔λshù)用(yòng)于指定要(yào)将記錄組合的(d®©≈®e)表的(de)名稱。
field1, field2參數(shù)指定被δ≈♠聯接的(de)字段的(de)名稱。且這(z±÷ ↔hè)些(xiē)字段必須有(yǒu)相(xiàng)同的(d•✘‌e)數(shù)據類型及包含相(xiàng)<®•同類型的(de)數(shù)據,但(dàn)它☆☆們不(bù)需要(yào)有(yǒu)相(xiàng)同的(d∏£✘e)名稱。
compopr參數(shù)指定關系比較運算(su‍ ≥♠àn)符:"=", "γβ<", ">&×Ω‍&quot;, "<=", "→♦∞>=" 或 "<>&≠>quot;。
如(rú)果在INNER JOIN操作(zuò)中要(yào)聯接包含M₹≤$emo 數(shù)據類型或 OLE Ob≈₽Ωject 數(shù)據類型數(shù)據的(de)字¥£σ 段,将會(huì)發生(shēng)錯(cuò)誤&₩π.