1. 程式人生 > 其它 >left join \ right join \ inner join 的區別

left join \ right join \ inner join 的區別

1 概念

left join (左聯接):返回包括左表中的所有記錄右表中聯結欄位相等的記錄 right join (右聯接):返回包括右表中的所有記錄左表中聯結欄位相等的記錄 inner join (等值連線):只返回兩個表中聯結欄位相等的行  

2 例子

 

 

2.1 left join

select * from A left join B on A.aID = B.bID
left join 是以 A 表的記錄為基礎的,A可以看成左表,B可以看成右表,left join是以左表為準的。 換句話說,左表 (A) 的記錄將會全部表示出來,而右表 (B) 只會顯示符合搜尋條件的記錄
 (例子中為: A.aID = B.bID), B 表記錄不足的地方均為 NULL。    

2.2 right join

select * from A right join B on A.aID = B.bID

 和 left join 的結果剛好相反,這次是以右表 (B) 為基礎的,A 表不足的地方用 NULL 填充.

   

2.2 inner join 

select * from A innerjoin B on A.aID = B.bID

 只顯示出了 A.aID = B.bID 的記錄,這說明 inner join 並不以誰為基礎它只顯示符合條件的記錄