我在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
如果我使用外部联盟,那么零雇员的公司仍会显示 在一行中,所以也可以选择。
怎么做?
答案 0 :(得分:22)
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
答案 1 :(得分:1)
尝试
Select company.cname, count(work.id) from company left join work on ....=.... group by company.cname
您填写“....”部分,并将work.id更改为您的姓名
答案 2 :(得分:0)
使用子查询还有另一种方法,这是我案例中的一个示例:
list_employee