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

233 阅读1分钟

小知识,大挑战!本文正在参与“     程序员必备小知识     ”创作活动

我是老表,Python终身学习者,数据分析爱好者,宠猫狂人~

本文是sql刷题从0到100系列的第一篇,坚持分享自己的学习刷题笔记,不断积累,相信终有一天变成大佬~

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

我的思路: 直接通过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;