简说Python,号主老表,Python终身学习者,数据分析爱好者,从18年开始分享Python知识,原创文章227篇,写过Python、SQL、Excel入门文章,也写过Web开发、数据分析文章,老表还总结整理了一份2022Python学习资料和电子书资源,关注后私信回复:2022 即可领取。
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;