出于某个决定,在做这个sql专题的过程中,我会逐题记录每题的想法(如果代码能通过的话)。
SQL1:
本题最先想的是用limit,但limit有个很大的问题,即需要在明确知道结果有几个的情况下使用才有效。虽然本题测试能通过,但如果测试用例中存在多个员工都是最晚入职的话,limit也仅仅只能显示固定的条数。
select emp_no, birth_date, first_name, last_name, gender, hire_date from employees order by hire_date desc limit 0, 1 ;
所以进而想到了子查询语句,在where后面的条件中套入一个子查询,将子查询看作一张临时表,使“入职日期 = 最晚的入职日期”,就可以筛出所有最晚入职的员工。
select emp_no, birth_date, first_name, last_name, gender, hire_date from employees where hire_date = ( select max(hire_date) from employees ) ;