select b.emp_no,a.salary,b.last_name,b.first_name from salaries as a inner join employees as b on a.emp_no = b.emp_no where salary in (select max(salary) from salaries where salary not in ( select max(salary) from salaries )) 用max找出最大值后,原表not in 排除最大值,剩下的数据使用max就是第二大值了