首页 > 解决方案 > 本教程sql查询中如何获取部门名称?

问题描述

按照这里的 SQL 教程,我想查询每个部门的员工人数以及部门名称。

我在该教程中尝试了以下查询:

SELECT count(*), dept_name
FROM employees, departments
WHERE employees.dept_id = departments.dept_id
GROUP BY departments.dept_id

但它返回

COUNT(*)    dept_name
2           NULL
2           NULL

而不是预期的输出

COUNT(*)    dept_name
2           Accounting
2           Sales

我在这里做错了什么?

标签: sql

解决方案


首次使用JOIN代替WHERE

然后你分组dept_id以确保你没有重复的名字,比如 2 个销售部门或 2 个同名的员工。

SELECT departments.dept_id, dept_name, count(*)
FROM employees
JOIN departments
  ON employees.dept_id = departments.dept_id
GROUP BY departments.dept_id, departments.dept_name

推荐阅读