Mysql查询从多个表计数数据并显示0表示空值

时间:2015-01-19 14:43:18

标签: mysql sql join group-by

我的表是:

Department(Dept_id,Dept_name#)

Employee(Emp_id#,Emp_Name,Address,Phone,Email,Dept_name)

从上表中显示以下详细信息(Dept_IdDept_nameTotal Employees)。

我使用以下查询:

SELECT dept_id,department.dept_name,count(emp_id)"Total" 
FROM department,employee_details 
WHERE department.dept_name=employee_details.dept_name 
GROUP BY dept_id;

在上面的查询中,我并未获得全部dept_name,而是我的dept_namedept_id的{​​{1}}被计算在内。那么如何才能获得emp_iddept_name的所有数据以及相应的结果dept_id,即0

1 个答案:

答案 0 :(得分:0)

使用LEFT JOIN代替隐式INNER JOIN,并在department.dept_name子句中添加GROUP BY

SELECT d.dept_id
     , d.dept_name
     , COUNT(ed.emp_id) AS Total 
FROM department d 
LEFT JOIN employee_details ed ON d.dept_name = ed.dept_name
GROUP BY d.dept_id
       , d.dept_name