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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL“来自第二大部门的员工名单”不是通过子查询相关的知识,希望对你有一定的参考价值。

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

以上是关于MYSQL“来自第二大部门的员工名单”不是通过子查询的主要内容,如果未能解决你的问题,请参考以下文章

第四章 MySQL高级查询

MySQL 基础教程-09 常见查询示例

MySQL GROUP BY ...具有不同的值相同的字段

SELECT中(非常)常用的子查询操作

SQL案例分析-地铁换乘线路查询.sql

通过 Internet 连接 MySQL 和 .net 应用程序是不是存在危险?