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

MYSQL“;第二大部门的员工名单“;不是通过子查询,mysql,join,Mysql,Join,我有一个场景需要列出第二大部门的所有员工。(1名员工仅属于一个部门)。 我可以使用以下子查询获得结果: SELECT empno,ename,deptno FROM emp WHERE deptno = ( SELECT deptno FROM emp GROUP BY deptno ORDER BY COUNT(*) DESC LIMIT 1,1

我有一个场景需要列出第二大部门的所有员工。(1名员工仅属于一个部门)。 我可以使用以下子查询获得结果:

SELECT empno,ename,deptno 
FROM emp 
WHERE deptno = (
                 SELECT deptno 
                 FROM emp 
                 GROUP BY deptno 
                 ORDER BY COUNT(*) DESC LIMIT 1,1
               )

但是,如果我想使用连接得到相同的结果呢。我如何才能做到这一点?

在MySQL中,您可以使用


MySQL还是SQL Server
TOP
是一种SQL server语法,在MySQL中不起作用。请编辑这个问题。它是mysql。不要使用所有的大写字母。被认为是大喊大叫,毫无疑问。谢谢你,胡安。下次会记住的。谢谢你,玛德胡。但这看起来也像一个子查询。我的mysql知识薄弱。所以我不确定。您能解释一下吗?@user3910197这是一种子查询,但它会很有效,因为它只计算一次。请仔细阅读答案中给出的
派生表
链接。谢谢Madhur。我们可以在逻辑中的任何地方使用“拥有”而不使用子查询(),而且我也会失败,因为我也认为这是子查询。但正如Madhur所说,这是一个派生表。谢谢Madhur的帮助。
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