【问题标题】:How do I create this Select Statement?如何创建此 Select 语句?
【发布时间】:2011-02-23 05:56:48
【问题描述】:

有两个表:员工和部门。 Employee 表有列:empid、deptid、employeename 部门表有:deptid、deptname

我想创建一个选择语句,它将列出属于拥有超过 3 名员工的部门的所有员工。

我该怎么做?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:
    select empid, employeename
    from Employee
    where deptid in (
        select deptid
        from Employee
        group by deptid
        having count(*) > 3
    )
    

    【讨论】:

      【解决方案2】:

      只是另一种方法......

      Select e.empid, e.employeename
      from employee e
      where 3 <= (select count(e2.empid) 
                  from employee e2 
                  where e2.empid <> e.empid and e2.deptid = e.deptid)
      

      【讨论】:

      • :) 谈论复杂的事情!
      • @Roopesh - 同意它既复杂又昂贵。与@Jason 的第一个解决方案相比,也不推荐。但这只是实现它的另一种方法。如果他是初学者,它将帮助他更合乎逻辑地理解查询。上面写着 - 选择同一部门中存在超过 3 名其他员工的员工 :) 我喜欢寻找替代品。
      猜你喜欢
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 2015-04-17
      • 2016-02-25
      相关资源
      最近更新 更多