0

我有桌子部门和员工。架构就像,

department(id, name)
employee(id,depid,salary)

我需要统计每个部门的员工人数。我在 mysql 中的查询就像

select d.depname,count(e.id) 
from employe as e left join department as d on d.depid 
where e.depid=d.depid group by d.depid;

但结果集中只包含有员工的部门。我需要那些员工人数为 0 的部门本身为零。

4

2 回答 2

6

只需交换表名,

SELECT  d.name, 
        COUNT(e.id) totalEmployeeCount
FROM    department AS d 
        LEFT JOIN employee AS e 
            ON e.depid = d.id
GROUP   BY d.id;

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-02-20T07:00:33.307 回答
1
select d.depname,count(e.id) from employee as e 
right join department as d on d.depid = e.depid 
group by d.depid;

为此,请通过http://dev.mysql.com/doc/refman/5.0/en/join.html

于 2013-02-20T06:59:54.227 回答