查找最晚入职员工的所有信息题解

思路一

  • 知识点
    • 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)