一尘不染

使用mysql group by显示count为0的行

mysql

我在MySql Company中有两个表:(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

如果我使用外部联接,则员工数为零的公司仍将显示在一行中,因此该选项也将退出。

怎么做?


阅读 1186

收藏
2020-05-17

共1个答案

一尘不染

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
2020-05-17