LeetCode、牛客每天一题

查找当前薪水详情以及部门编号

题目描述

查找各个部门当前(dept_manager.to_date=’9999-01-01’)领导当前(salaries.to_date=’9999-01-01’)薪水详情以及其对应部门编号dept_no

(注:请以salaries表为主表进行查询,输出结果以salaries.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));

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));

解题思路

这个题是中等的题目,较为简单。但是这一题的描述不是太好,这个题的意思就是查找员工的薪水,首先这个员工是个经理s.emp_no=d.emp_no,然后这个经理的salaries.to_date=’9999-01-01’以及dept_manager.to_date=’9999-01-01’。就这三个条件。

主要考察两个表的连接。我们使用where进行连接两表

答案解析

1
2
3
4
5
6
select s.emp_no,s.salary,s.from_date,s.to_date,d.dept_no
from salaries s,dept_manager d
where s.emp_no=d.emp_no
and d.to_date='9999-01-01'
and s.to_date='9999-01-01'
order by s.emp_no asc;

image-20200729085333386

点击查看
-------------------本文结束 感谢您的阅读-------------------