SQL3 查找当前薪水详情以及部门编号dept_no
作者:老表-简说Python
题目来源:https://www.nowcoder.com/ta/sql
我的思路: 直接通过emp_no
连接两个表就可以啦,这里的技巧就是左表优先选数据量小的表,比如题目中dept_manager
就是相对小的表。
我的题解:
select a.emp_no, b.salary, b.from_date, b.to_date, a.dept_no from (select * from dept_manager ) as a join (select * from salaries ) as b on a.emp_no = b.emp_no order by a.emp_no;
涉及知识点:
- join 连接,还有左连接(left join)和右连接(right join)
- sql 执行顺序(一天发一遍,记住)
from -> where -> group by -> having -> select -> order by -> limit
- 排序:order by 字段名称 desc/asc (desc 降序,asc 升序)
提交结果:
其他题解学习:
思路: 没有什么特别的,主要是将join改为了where实现,另外提出了应该限制时间的想法(应该只统计目前还在职的员工相关信息)。
select b.*,a.dept_no from dept_manager as a, salaries as b where a.to_date='9999-01-01' and b.to_date='9999-01-01' and a.emp_no = b.emp_no order by b.emp_no;