🚀 算法题 🚀 |
🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,优快云-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯
🚀 算法题 🚀 |
🚩 题目链接
⛲ 题目描述
有一个全部员工的薪水表salaries简况如下:
有一个各个部门的领导表dept_manager简况如下:
请你查找各个部门当前领导的薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输出如下:
🌟 求解思路&实现代码&运行结果
⚡ 联表查询
🥦 求解思路
- 选择表及表的连接方式:
- 这里选择了两个表,分别是 salaries 表(使用别名 s)和 dept_manager 表(使用别名 d)。
- 采用 inner join(内连接)的方式将这两个表连接起来。连接的条件是 s.emp_no = d.emp_no,这意味着只有当 salaries 表中的员工编号 emp_no 和 dept_manager 表中的员工编号 emp_no 相等时,对应的记录才会被保留在连接后的结果集中。内连接的作用是获取两个表中相关联的部分数据。
- 选择列:
- 在 SELECT 子句中,明确指定了要从连接后的结果集中选取的列。具体包括 s.emp_no(员工编号)、s.salary(薪水)、s.from_date(薪水起始日期)、s.to_date(薪水结束日期)以及 d.dept_no(部门编号)。通过这种方式,获取了关于员工薪水的详细信息以及他们所在的部门编号。
- 排序:
- 使用 ORDER BY 子句对最终的结果集按照 s.emp_no(员工编号)进行升序排列(asc 表示升序)。这样做可以使结果集中的记录按照员工编号从小到大的顺序呈现,方便对数据进行查看和分析,例如可以更清晰地对比不同员工的薪水和部门信息。
- 有了基本的思路,接下来我们就来通过代码来实现一下。
🥦 实现代码
select
s.emp_no,
s.salary,
s.from_date,
s.to_date,
d.dept_no
from
salaries as s
inner join dept_manager as d on s.emp_no = d.emp_no
order by
s.emp_no asc;
🥦 运行结果
💬 共勉
最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉! |