我有2个表,一个表存储人员的详细信息(列为staff_id,staff_name,department_id),另一个表存储部门的详细信息(列为department_id,department_name,department_block_num)。
我需要编写一个查询来显示部门名称和每个部门的人员计数,如果不存在人员显示计数为0。
这是代码
Select department_name,
case department.department_id
when department.department_id=staff.department_id then count(staff_name)
else 0 end staff_count
From department, staff
Group by department_name
order by department_name;
答案 0 :(得分:0)
您正在寻找LEFT JOIN
和汇总查询:
select d.department_id, d.department_name,
count(s.department_id) as staff_count
from department d left join
staff s
on d.department_id = s.department_id
group by d.department_id, d.department_name