题目描述
有一个员工 employees 表简况如下:

建表语句如下:
CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,PRIMARY KEY (`emp_no`));
请你查找 employees 表中最晚入职员工的所有信息,上述示例输出入下:

答案解析
思路一
使用 ORDER BY DESC 将 hire_date 列按照降序对查询的结果集进行排序,使用 LIMIT 语句取一条结果并返回
我们可以使用 LIMIT 1 或者是 LIMIT 0,1
SQL 语句如下:
SELECT * FROM employeesORDER BY hire_date DESCLIMIT 0,1;
不过这种方式只能查询到一条数据,hire_data 可能有多个相同的记录存在
思路二
使用子查询
我们可以使用子查询,先获取最晚的 hire_date,然后把与其相等的记录全部查询出来
SQL 语句如下:
SELECT * FROM employeesWHERE hire_date = (SELECT MAX(hire_date) FROM employees);
