统计各个部门的工资记录数
统计各个部门的工资记录数,给出部门编码dept_no、部门名称dept_name以及次数sum
CREATE TABLE `departments` (
`dept_no` char(4) NOT NULL,
`dept_name` varchar(40) NOT NULL,
PRIMARY KEY (`dept_no`));
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
我的提交是
select d.dept_no, d.dept_name, count(s.salary) as sum
from departments as d
left join dept_emp as de on d.dept_no = de.dept_no
left join salaries as s on s.emp_no = de.emp_no
group by d.dept_no;
我认为这个是有问题的,因为第二个left join中的表salaries和departments之间是没有直接联系的, 这两个表是通过表dept_emp才有间接联系,但是过了。不知道该怎么解释。