题解 195 | #查找最晚入职员工的所有信息#
查找最晚入职员工的所有信息
https://www.nowcoder.com/practice/218ae58dfdcd4af195fff264e062138f
【场景】:查找最大值的所有信息
【分类】:in子查询
分析思路
难点:
1.考虑到最晚入职的员工不止一名的情况。
员工表中的入职时间是只记录到天没有精确到秒,会有可能出现最晚入职的员工不止一名的情况。所以这也在启发我们建表的时候最好考虑到这种情况,把入职时间精确到秒。
如果有多名员工最晚入职如何查找
分两步走,一、先找到入职最晚(最大)日期;二、再根据日期筛选员工信息。
- [使用]:
in
、= 子查询
扩展
前往查看:MySQL 嵌套子查询 with子句 from子查询 in子查询 join子查询
错误代码
对入职日期倒排序,取第一条数据。
#错误解法 select * from employees order by hire_date desc limit 1
求解代码
方法一:
in 子查询
select emp_no, birth_date, first_name, last_name, gender, hire_date from employees where hire_date in ( select max(hire_date) as max_date from employees)
方法二:
= 子查询
select emp_no, birth_date, first_name, last_name, gender, hire_date from employees where hire_date = ( select max(hire_date) as max_date from employees)