查找最晚入职员工的所有信息题解
思路一
- 知识点
- ORDER BY 根据指定的列对结果集进行排序,默认按照升序,降序 ORDER BY DESC
- LIMIT(m, n) 从第 m + 1 行开始取 n 条记录
- 最晚员工自然是 hire_data,最晚可以用排序 ORDER BY DESC 降序来得到,然后是获取第一条记录,这样理论上是有 bug 的,因为 hire_data 可能有多个相同的记录
代码一
select * from employees order by hire_date desc limit 0,1
思路二
- 知识点
- MAX 取最大值
- 先获取所有最晚的 hire_date,然后把与其相等的记录取出来,这个可以取多条,因此必定是正确的。
代码二
SELECT * FROM employees WHERE hire_date == (SELECT MAX(hire_date) FROM employees)