我的 table 是:
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_name
和dept_id
其中emp_id
被计算在内。那么如何获取dept_name
的所有数据和dept_id
对应的结果为0
即Count(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
关于Mysql查询统计多个表的数据并显示0为空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28027178/