iT邦幫忙

0

請問 SQL LEFT JOIN 用法 ?

sql
cmkung 2012-09-27 17:55:0554458 瀏覽
  • 分享至 

  • xImage


請問左右外部連結是指資料表左右邊嗎 ?
像上面那個圖 customers 左邊是 C_ID,Name,City,
是這樣嗎 ?

ihon822 iT邦研究生 2 級 ‧ 2012-09-27 23:00:19 檢舉
上面的SQL語法應該是SELECT 和 JOIN 反了
一般的用法會是 SELECT orders JOIN customers
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

12
wiseguy
iT邦超人 1 級 ‧ 2012-09-27 18:25:42
最佳解答

cmkung提到:
左右外部連結是指資料表左右邊嗎

是指 left join 語法的前後 TABLE。在 left join 前面的 table 會抓出所有的 record,不管有沒有關連到後面的 table。
以這個例子來說,因為 C_Id=2 的王二沒有買過東西,所以 orders 裡面沒有他的記錄。假如今天的需求是想要知道所有人的購買次數,只用 inner join 的話,王二這個人會不見了。必須用 left join 來抓出所有 customer 的資料。

cmkung iT邦新手 5 級 ‧ 2012-10-02 12:08:23 檢舉

請問 INNER LEFT RIGHT FULL CROSS NATURAL 這幾個指令
那一個比較常用

6
microjet
iT邦新手 5 級 ‧ 2012-09-28 10:06:49

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資料表無資料時) 會不會顯示出來

有錯請大大指正,謝謝

我要發表回答

立即登入回答