首页 > 解决方案 > 如何在mysql中使用count和order by与inner join?

问题描述

员工表

部门表

如何显示部门名称和为该部门工作的员工人数。

我的 SQL 代码:

SELECT department.dname , employee.count(*)
FROM employee
INNER JOIN department
ON dno=dnumber
ORDER BY department.dname;

标签: sql

解决方案


正确的语法是:

select d.dname, count(*)
from employee e inner join
     department d
     on d.dno = e.dnumber
group by d.dname
order by d.dname;

笔记:

  • 您正在描述每个部门一行的聚合查询。这表明GROUP BY.
  • 表别名使查询更易于编写和阅读。
  • 限定所有列名。我必须猜猜桌子dno是从哪里来的。应该没有理由猜测。

推荐阅读