题目描述
获取所有部门当前 (dept_manager.to_date='9999-01-01')
manager
的当前 (salaries.to_date='9999-01-01')
薪水情况,给出 dept_no
, emp_no
以及 salary
,输出结果按照 dept_no
升序排列(请注意,同一个人可能有多条薪水情况记录)。
CREATE TABLE `dept_manager` (
`dept_no` char(4) NOT NULL,
`emp_no` int(11) 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`));
考察知识点
内联结,ORDER BY
。
解题思路
查询的结果中要包含dept_no
,emp_no
以及salary
。连接两个表时,根据限定条件筛选符合题目要求的数据,最后按照dept_no
列升序排列。
SELECT dept_no, d.emp_no, salary
FROM dept_manager AS d INNER JOIN salaries AS s
ON d.emp_no = s.emp_no AND d.to_date = '9999-01-01' AND s.to_date = '9999-01-01'
ORDER BY dept_no;
题目来源:牛客网-SQL数据库实战题
✅ 每日打卡,❤ 点个赞再走吧!!!❤
后续会继续分享 Mysql 方面的文章,如果感兴趣的话可以点个关注不迷路哦~。