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_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
我的表是:
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