Question:查找最晚入职员工的所有信息
原文地址链接:https://www.nowcoder.com/practice/218ae58dfdcd4af195fff264e062138f
1.创建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
));
2.解题思路
思路一
- 知识点
- ORDER BY 根据指定的列对结果集进行排序,默认按照升序,降序 ORDER BY DESC
- LIMIT(m, n) 从第 m + 1 行开始取 n 条记录
- 最晚员工自然是 hire_data,最晚可以用排序 ORDER BY DESC 降序来得到,然后是获取第一条记录,这样理论上是有 bug
的,因为 hire_data 可能有多个相同的记录
代码一
SELECT * FROM employees ORDER BY DESC LIMIT 0,1
思路二
- 知识点
- MAX 取最大值
- 先获取所有最晚的 hire_date,然后把与其相等的记录取出来,这个可以取多条,因此必定是正确的。
代码二
SELECT * FROM employees WHERE hire_date == (SELECT MAX(hire_date) FROM employees)