MYSQL“来自第二大部门的员工名单”不是通过子查询

问题描述 投票:3回答:1

我有一个场景,我需要列出第二大部门的所有员工。 (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
1个回答
2
投票

在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 
© www.soinside.com 2019 - 2024. All rights reserved.