如何在MySQL中使用外部查询中的IN运算符在子查询中使用LIMIT运算符

时间:2013-12-01 13:57:54

标签: mysql sql

我的查询就像

SELECT e.emp_name, d.dept_name, s.salary
FROM employes e
JOIN departments d
ON e.dept_id = d.dept_id
JOIN salary s
ON e.emp_id = s.emp_id
AND e.emp_id NOT IN (SELECT emp_id
    FROM salary s
    ORDER BY salary DESC
    LIMIT 2)
ORDER BY salary DESC
LIMIT 1

我收到了这个错误...

[Err] 1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

1 个答案:

答案 0 :(得分:1)

您可以切换为left outer join

SELECT e.emp_name, d.dept_name, s.salary
FROM employes e JOIN
     departments d
     ON e.dept_id = d.dept_id JOIN
     salary s
     ON e.emp_id = s.emp_id LEFT OUTER JOIN
     (SELECT emp_id
      FROM salary s
      ORDER BY salary DESC
      LIMIT 2
     ) s2
     on e.emp_id = s2.emp_id
WHERE s2.emp_id IS NULL
ORDER BY salary DESC
LIMIT 1;