![](/img/trans.png)
[英]Displaying rows with count 0 in MySQL using COUNT and GROUP BY
[英]Displaying rows with count 0 with mysql group by
我在MySql公司有两个表:(cname,city)有效:( ename,cname,salary)
我想显示为每家公司工作的员工人数,即使这个数字为零。
例如为...
Company :
Microsoft Bangalore
IBM NY
works :
emp1 Microsoft 10000
emp2 Microsoft 90000
输出应该是:
Microsoft 2
IBM 0
但是以下查询和其他类似查询仅打印那些至少有一名员工的公司:
Select count(*) from works natural join company group by company.cname
如果我使用外部联接,那么零雇员的公司仍然会出现在一行中,因此该选项也是如此。
怎么做?
LEFT JOIN的经典案例:
SELECT
c.cname,
COUNT(w.ename) wcount
FROM
company c
LEFT JOIN works w ON c.cname = w.cname
GROUP BY
c.cname
尝试
Select company.cname, count(work.id) from company left join work on ....=.... group by company.cname
在哪里填写“......”部分,并将work.id更改为您的名字
使用子查询还有另一种方法,这是我案例中的一个示例:
select count(`order_id`) as cnt
from (
select `order_id` from `room_bookings`
where `room_id` = 3 and `day_id` = 20180201
group by `order_id`
) as b;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.