这题关键点在于不用order by 找到第二大的薪资,可以这样理解:
1.先找到最大的薪资 maxsalary
2.查找 < maxsalary 的最大薪资,就是第二大薪资
对应的sql:
select max(salary) from salaries where salary < ( select max(salary) from salaries )
找到这个第二大的薪资后就很简单了,直接联表查询后过滤就可以了:
select e.emp_no, s.salary, e.last_name, e.first_name from employees as e left join salaries as s on e.emp_no = s.emp_no where s.salary = ( select max(salary) from salaries where salary < ( select max(salary) from salaries ) );
sql是能过的