cmkung提到:
左右外部連結是指資料表左右邊嗎
是指 left join 語法的前後 TABLE。在 left join 前面的 table 會抓出所有的 record,不管有沒有關連到後面的 table。
以這個例子來說,因為 C_Id=2 的王二沒有買過東西,所以 orders 裡面沒有他的記錄。假如今天的需求是想要知道所有人的購買次數,只用 inner join 的話,王二這個人會不見了。必須用 left join 來抓出所有 customer 的資料。
select * from customer a
left join orders b on a.cid = b.cid
意指以 左邊的資料(customer)為主,
資料呈現會是
customer.cid|orders.cid |order.oid
1 | 1 | 3
1 | 1 | 4
2 | null | null
3 | 3 | 1
3 | 3 | 2
4 | null | null
5 | 5 | 5
若換成right join時,資料的呈現會是
customer.cid|orders.cid |order.oid
1 | 1 | 3
1 | 1 | 4
3 | 3 | 1
3 | 3 | 2
5 | 5 | 5
差異在於customer.cid = 2&4(orders資料表無資料時) 會不會顯示出來
有錯請大大指正,謝謝