出于某个决定,在做这个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
    )
;