2016年6月13日 星期一

Join的差異性

前幾天剛開始學習程式的表弟問我說 Left Join 與 Inner Join 差別在哪?

我自己雖然對DB與SQL也並不是說很強的狀況,但我還是懂甚麼是JOIN(其實是在實習時懂得)但是要我解釋我還真不太會形容

左邊的表
PKFK
1a1
2a2
3a3
右邊的表
PKDescription
a2a2很棒
a3a3很棒
a4a4很棒

Inner join 

簡單來說就是 左邊的表 與右邊的表 都要相等才會帶出資料

Select * from table1, table2
Where table1.FK=table2.PK 


Left join

是以左邊為主  左邊的表資料全部留下,右邊的表有符合就一起帶入
表一所有資料都要帶出,並且帶出有符合的表二資料
Select * from table1
Left outer join table2 on table1.FK = table2.PK 

Right join

是以右邊為主  右邊的表資料全部留下,左邊的表有符合就一起帶入
表二所有資料都要帶出,並且帶出有符合的表一資料
Select * from table1
Right outer join table2 on table1.FK = table2.PK 

FULL join

把兩張表的所有資料都一併帶出