【问题标题】:Selecting employees from database where the company contains between 1 and 5 employees从公司包含 1 到 5 名员工的数据库中选择员工
【发布时间】:2017-05-09 10:00:36
【问题描述】:

到目前为止,我有这个查询:

SELECT
    c.id AS company_id,
    c.company_name,
    COUNT(*) AS employee_count
FROM
    ct_companies c
INNER JOIN ct_employees e ON c.id = e.company_id
GROUP BY
    c.domain,
    c.postcode,
    c.company_name
HAVING
    (
        employee_count >= 1
        AND employee_count <= 5
    )
ORDER BY
    employee_count DESC

现在,这很好用,它会选择至少有 1 名但不超过 5 名员工的公司,并向我显示员工人数。

但我想做的是选择公司内的每个员工,但仅限于该公司拥有 1 到 5 名员工的情况。

类似

SELECT e.id FROM ct_employees e WHERE (employee_count >= 1 AND employee_count <= 5)

【问题讨论】:

    标签: mysql


    【解决方案1】:

    你可以试试

    SELECT e.id, 
           d.employee_count 
    FROM   ct_employees e 
           INNER JOIN (SELECT c.id     AS company_id, 
                              COUNT(*) AS employee_count 
                       FROM   ct_companies c 
                              INNER JOIN ct_employees e1 
                                      ON c.id = e1.company_id 
                       GROUP  BY c.domain, 
                                 c.postcode, 
                                 c.id 
                       HAVING COUNT(*) >= 1 
                              AND COUNT(*) <= 5) d 
                   ON d.company_id = e.company_id 
    ORDER  BY employee_count DESC 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-05
      相关资源
      最近更新 更多