牛客网数据库SQL实战剖析(1-10)
1. 查找最晚入职员工的所有信息 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`)); 解题思路:根据入职时间倒序排序 order by ... DESC ,然后再取一条记录,就是最晚入职的员工。 select * from employees order by hire_date DESC limit 1; 这样做有一个问题, hire_date 是 date 类型,很有可能多条记录中是同一个时间入职的,所以说时间类型还是用时间戳比较精切。 针对这道题目可以使用 MAX() 函数,然后用一个子查询。 select * from employees where hire_date = (select MAX(hire_date) FROM employees); MAX() 先查询出最晚入职的时间,然后再查询出在最晚时间入职的所有员工。 2.