题目:
(让输出描述的顺序给绊住了…要注意先emp_no再salary):
说题之前先了解一下join表的顺序
1.那么第一个坑!要注意查询顺序
先employees.emp_no 再salaries.salary 那么问题来了,为什么是employees的emp_no而不是另一个表的呢,因为下面输出描述的顺序TAT
2.第二个要注意得地方:
salaries表中emp_no不唯一,一个员工有多次涨薪的机会,employees表中emp_no 唯一,即 salaries 的数据会多于 employees,因此需先找到 employees.emp_no 在 salaries 表中对应的记录salaries.emp_no,则有限制条件 e.emp_no = s.emp_no
3.第三个要注意的地方
题目要求的是入职时的薪水,所以还要限定employees.hire_day = from_day
答案
select e
.emp_no
, s
.salary
from employees
as e
join salaries
as s
on e
.emp_no
=s
.emp_no
and e
.hire_date
=s
.from_date
order by e
.emp_no
desc