查找当前薪水详情以及部门编号dept_no
题解仓库
题目地址
题目描述
查找各个部门当前(to_date=‘9999-01-01’)领导当前薪水详情以及其对应部门编号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
));
输出描述
emp_no | salary | from_date | to_date | dept_no |
---|---|---|---|---|
10002 | 72527 | 2001-08-02 | 9999-01-01 | d001 |
10004 | 74057 | 2001-11-27 | 9999-01-01 | d004 |
10005 | 94692 | 2001-09-09 | 9999-01-01 | d003 |
10006 | 43311 | 2001-08-02 | 9999-01-01 | d002 |
10010 | 94409 | 2001-11-23 | 9999-01-01 | d006 |
答案
- (SQL 3.7.9)
- 符合MySQL5.7语法规范
- 知识点
- 过滤
SELECT s.emp_no ,s.salary,s.from_date,s.to_date,d.dept_no
FROM salaries s
inner join dept_manager d
on d.emp_no = s.emp_no
and d.to_date = '9999-01-01'
and s.to_date= '9999-01-01'
;
分析
- 过滤使用select
- 显示内容为s.emp_no ,s.salary,s.from_date,s.to_date,d.dept_no
- salaries 表和 dept_manage表进行关联 使用 inner join 内关联 FROM salaries s inner join dept_manager d
- 关联方式为 d.emp_no 和 s.emp_no 相等 on d.emp_no = s.emp_no
- 限定当前 当前(to_date=‘9999-01-01’) and d.to_date = ‘9999-01-01’ and s.to_date= ‘9999-01-01’