作者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://webptt.com/cn.aspx?n=bbs/Database/M.1586958699.A.230.html
※ 编辑: crystal80314 (114.47.0.252 台湾), 04/15/2020 21:52:37
1F:推 cutekid: customer left join order 後,再做 group by 04/15 22:07
2F:→ crystal80314: 谢C大! 想确认是指Customer和Customer_Order做left 04/15 22:24
3F:→ crystal80314: outer join後,再group by cust_id吗? ( 插鴃ꬩ 04/15 22:24
4F:推 cutekid: 对喔 04/15 22:38
5F:推 paranoia5201: 同上,left join後再group by。 04/15 23:10
7F:→ crystal80314: 想再求问,我跑出结果了,但total_number_of_order 04/15 23:48
8F:→ crystal80314: 却返回一样的值....( ;枣驉ꬩ 04/15 23:48
10F:→ crystal80314: 感谢C大出手,成功解决!!! 04/16 09:17
11F:推 aidansky0989: SQL92/95的内外连接先学再写题目 04/16 19:49