作者crystal80314 (Pigstal)
看板Database
標題[SQL ] MySQL 無資料返回0寫法
時間Wed Apr 15 21:51:37 2020
(針對
SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行)
資料庫名稱:MySQL
資料庫版本:MyWorkbench 8.0
內容/問題描述:
最近初學SQL, 想請教以下一個問題。
共有兩個表(Customer/Customer_Order)
https://i.imgur.com/KuUAAKS.jpg
https://i.imgur.com/EbQLT4V.jpg
題目:需要返回cust_name, total number of orders (計算Customer_order裡每個cust_
id的數量),包含沒order的cust_name (顯示0),必須使用correlated subquery和scalar
。
感謝看完那麼長的問題,我目前怎麼寫都頂多返回‘不含0’的版本,苦無計策!
附上我寫的不含0版本:
SELECT c.cust_name, CO.cnt as total_number_of_orders
FROM Customer c,
(SELECT co.cust_id, count(co.cust_id) as cnt FROM Customer_Order co
GROUP BY co.cust_id) CO
WHERE c.cust_id= CO.cust_id
GROUP BY c.cust_id;
希望板上高手能提點提點!謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.47.0.252 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1586958699.A.230.html
※ 編輯: crystal80314 (114.47.0.252 臺灣), 04/15/2020 21:52:37
推 cutekid: customer left join order 後,再做 group by 04/15 22:07
→ crystal80314: 謝C大! 想確認是指Customer和Customer_Order做left 04/15 22:24
→ crystal80314: outer join後,再group by cust_id嗎? ( 插鴃ꬩ 04/15 22:24
推 cutekid: 對喔 04/15 22:38
推 paranoia5201: 同上,left join後再group by。 04/15 23:10
→ crystal80314: 想再求問,我跑出結果了,但total_number_of_order 04/15 23:48
→ crystal80314: 卻返回一樣的值....( ;棗驉ꬩ 04/15 23:48
→ crystal80314: 感謝C大出手,成功解決!!! 04/16 09:17
推 aidansky0989: SQL92/95的內外連接先學再寫題目 04/16 19:49