题目描述
有一个部门表 departments 简况如下:

有一个部门员工关系表 dept_emp 简况如下:

有一个薪水表 salaries 简况如下:

请你统计各个部门的工资记录数,给出部门编号 dept_no,部门名称 dept_name 以及部门在 salaries 表里面有多少条记录 sum,要求查询的结果按照 dept_no 升序排列,上述示例的查询结果如下:

答案解析
两种方法,我们可以将三表连续内连接进行查询,也可以使用 WHERE… AND 语句三表关联查询。
最后要使用到 GROUP BY 按照 dept_no 进行分组,并使其按照升序排列(ORDER BY)。
SQL 语句如下:
方法一
SELECT d.dept_no,d.dept_name,COUNT(*) AS `sum`FROM departments AS d INNER JOIN dept_empON d.dept_no = dept_emp.dept_noINNER JOIN salaries AS sON s.emp_no = dept_emp.emp_noGROUP BY d.dept_noORDER BY dept_no ASC;
方法二
SELECT d.dept_no,d.dept_name,COUNT(*) AS `sum`FROM departments AS d,dept_emp,salaries AS sWHERE s.emp_no = dept_emp.emp_noAND d.dept_no = dept_emp.dept_noGROUP BY d.dept_noORDER BY dept_no ASC;
