Mysql中not in的使用除了问题

这是数据表,表名为emp
不准用组函数(max)求最高薪水
SELECT DISTINCT E.SAL
FROM EMP AS E
JOIN(
SELECT DISTINCT E1.SAL AS S2
FROM EMP AS E1
JOIN (SELECT SAL AS S FROM EMP) AS E2
ON(E1.SAL<E2.S)) AS E3
ON(E.SAL NOT IN(E3.S2))
ORDER BY E.SAL DESC;
这样求得的结果为全集,这是为什么?

最外层的join改成where就可以了,因为那里是条件,而join on则是表连接,不是条件过滤

条件过滤有问题,建议你由内到外分步执行sql 检查是否为你预期的查询结果