select b.emp_no,b.salary,a.last_name,a.first_name  -- 3.查出对应字段
from employees a
left join salaries b on a.emp_no=b.emp_no  
where b.salary in
(
select max(c.salary) as maxsalary from salaries c --2.再查出排除最高工资后的最高工资,也就是第二高工资
where c.salary not in
(
select max(d.salary) as maxsalary from salaries d -- 1.先查出所有员工的最高工资
) 
)

所谓第二多就是少于第一多,那么排除第一多的,那第二多的就成了第一多的
这种做法可以保证多个员工的工资相同的情况