使用mysql group by显示计数为0的行

dha*_*0us 13 mysql group-by

我在MySql公司有两个表:(cname,city)有效:( ename,cname,salary)

我想显示为每家公司工作的员工人数,即使这个数字为零.

例如为...

Company : 
Microsoft Bangalore
IBM       NY

works : 
emp1 Microsoft 10000
emp2 Microsoft 90000
Run Code Online (Sandbox Code Playgroud)

输出应该是:

Microsoft 2
IBM 0
Run Code Online (Sandbox Code Playgroud)

但是以下查询和其他类似查询仅打印那些至少有一名员工的公司:

Select count(*) from works natural join company group by company.cname
Run Code Online (Sandbox Code Playgroud)

如果我使用外部联接,那么零雇员的公司仍然会出现在一行中,因此该选项也是如此.

怎么做?

Tom*_*lak 23

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
Run Code Online (Sandbox Code Playgroud)