[SQL ] MySQL 無資料返回0寫法

作者: crystal80314 (Pigstal)   2020-04-15 21:51:37
(針對 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;
希望板上高手能提點提點!謝謝!!
作者: cutekid (可愛小孩子)   2020-04-15 22:07:00
customer left join order 後,再做 group by
作者: crystal80314 (Pigstal)   2020-04-15 22:24:00
謝C大! 想確認是指Customer和Customer_Order做leftouter join後,再group by cust_id嗎? ( 插鴃ꬩ
作者: cutekid (可愛小孩子)   2020-04-15 22:38:00
對喔
作者: paranoia5201 (邁向研究生)   2020-04-15 23:10:00
同上,left join後再group by。
作者: crystal80314 (Pigstal)   2020-04-15 23:46:00
https://i.imgur.com/eiQBHpr.jpg想再求問,我跑出結果了,但total_number_of_order卻返回一樣的值....( ;棗驉ꬩ
作者: cutekid (可愛小孩子)   2020-04-16 01:45:00
作者: crystal80314 (Pigstal)   2020-04-16 09:17:00
感謝C大出手,成功解決!!!
作者: aidansky0989 (alta)   2020-04-16 19:49:00
SQL92/95的內外連接先學再寫題目

Links booklink

Contact Us: admin [ a t ] ucptt.com