[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