Mysql查询统计多个表的数据,空值显示0

Mysql query to count data from multiple tables and display 0 for null values

我的表是:

Department(Dept_id,Dept_name#)

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

从上面的表格中显示以下详细信息(Dept_Id,Dept_name,Total 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,其中 emp_id 被计算在内。那么我怎样才能得到 dept_namedept_id 的所有数据以及相应的结果 0Count(emp_id)=0

使用 LEFT JOIN 而不是隐式 INNER JOIN 并在 GROUP BY 子句中添加 department.dept_name

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