17,377
社区成员
发帖
与我相关
我的任务
分享
--正确,正是null影响,你无法查询到值
--因为empno not in相当于 empno<>mgr1 and empno<>mgr2...empno<>null,肯定为false
--排除null后就可以了
SELECT ename
FROM emp
WHERE empno NOT IN (SELECT mgr FROM emp WHERE mgr IS NOT NULL);
--改写成not exists
SELECT ename
FROM emp a
WHERE NOT EXISTS (SELECT 1 FROM emp b WHERE b.mgr = a.empno);