题目描述
有一个全部员工的薪水表 salaries 简况如下:
有一个各部门领导表 dept_manager 简况如下:
建表语句如下:
-- salaries 表
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`));
-- dept_manager 表
CREATE TABLE `dept_manager` (
`dept_no` char(4) NOT NULL,
`emp_no` int(11) NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
请你查找各个部门领导薪水的详情以及其对应部门编号 dept_no,输出结果按照 salaries.emp_no 升序排序,并且注意,输出结果里面 dept_no 列是最后一列
本示例的查询结果如下:
答案解析
本题涉及到联表查询,将 salaries 和 dept_manager 这两张表使用 join 语句进行连接。根据题目要求,将薪水表中所有的记录以及部门表中领导的信息筛选出来,最后按照salaries.emp_no 升序排序即可。
SQL 语句如下:
SELECT s.*,d.dept_no
FROM salaries AS s INNER JOIN dept_manager AS d
ON s.emp_no = d.emp_no
ORDER BY s.emp_no ASC;