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

标签 mysql sql join group-by

我的 table 是:

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其中emp_id被计算在内。那么如何获取dept_name的所有数据和dept_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

关于Mysql查询统计多个表的数据并显示0为空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28027178/

相关文章:

mysql - SQL:联合 2 个表,然后连接另一个表。有更好的方法吗?

mysql - 通过内部连接或左/右连接替换与标量子查询的比较

python - PySpark 在 GroupBy 之后加入

mysql - 左连接查询问题

php - 从 php/MySql 中的特定列检索数据

sql - 每天找到一个最大值

SQLSTATE[HY000] : General error: 1 no such table

mysqlimport 无法读取商标符号

php - 在点击功能 joomla 上为文章添加 1 次点击

sql - 我如何获得每张发票的价格?