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;