使用count函数计算两个表中的记录,即使count为零也返回相同的值

时间:2016-10-28 18:47:33

标签: mysql sql

我有两个表:员工和部门

  • 员工的字段:id,name,dept_id
  • 部门字段:dept_id,name

我需要一个查询,即使某个部门的员工人数为零,也会提取部门名称和每个部门的员工人数。

我尝试了下面的查询,但它只返回那些员工人数超过零的部门。

select d.name, count(e.id) as "Number of employees per department" 
from department d, employee e 
where d.DEPT_ID=e.DEPT_ID 
group by d.name 
order by count(e.id) desc;

请帮忙。

2 个答案:

答案 0 :(得分:1)

您需要外部加入表格。

FROM department d 
   LEFT JOIN employee e 
   ON d.DEPT_ID=e.DEPT_ID

答案 1 :(得分:0)

以下查询给出了所需的结果。

SELECT DEPARTMENT.NAME,COUNT(EMPLOYEE.DEPT_ID) 来自DEPARTMENT LEFT OUTER EMPLOYEE EMPLOYEE.DEPT_ID = DEPARTMENT.DEPT_ID GROUP BY DEPARTMENT.NAME;