我有一个场景,我需要列出第二大部门的所有员工。 (1员工仅属于一个部门)。我可以使用以下子查询获得结果:
SELECT empno,ename,deptno
FROM emp
WHERE deptno = (
SELECT deptno
FROM emp
GROUP BY deptno
ORDER BY COUNT(*) DESC LIMIT 1,1
)
但是,如果我想使用JOIN获得相同的结果,该怎么办?我怎样才能做到这一点 ?
在MySQL中,您可以在JOIN
上使用Derived Table执行以下操作:
SELECT empno,ename,deptno
FROM emp AS t1
JOIN (SELECT t2.deptno
FROM emp AS t2
GROUP BY t2.deptno
ORDER BY COUNT(*) DESC
LIMIT 1,1
) AS t3 ON t3.deptno = t1.deptno