如何检查计数并基于该查询

时间:2012-01-28 10:08:55

标签: mysql

我有一个桌子员工和一个桌子部门。每个员工都链接到部门ID。 employee表的字段是

    EMPLOYEE
    ssn, fname, lname, dept_id


    DEPARTMENT
    dept_id, dept_name

所以我的问题是,如果特定部门有超过3名员工,我需要选择员工姓名和姓氏。我不确定这样做的最好方法。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

主要问题是MySQL不喜欢使用访问相同表的子查询进行查询。

SELECT d.dept_name, GROUP_CONCAT( CONCAT(E.FNAME,' ',E.LNAME) ORDER BY E.LNAME 
SEPARATOR ',' ),
FROM DEPARTMENT D JOIN EMPLOYEE E USING(dept_id)
GROUP BY dept_id
HAVING COUNT(*) > 3;

此解决方案将为每个部门的每行提供一份雇员列表。 例如:

'IT','Micky Mouse,Tom Jones' 'HR','Emily Bronte'

如果您愿意,可以使用SEPARATOR更改员工列表中使用的分隔符。

答案 1 :(得分:0)

尝试

SELECT lname, fname
FROM Employee
WHERE dept_id
IN (

SELECT dept_id
FROM Employee
GROUP BY dept_id
HAVING COUNT(*) > 3)