我有一个桌子员工和一个桌子部门。每个员工都链接到部门ID。 employee表的字段是
EMPLOYEE
ssn, fname, lname, dept_id
DEPARTMENT
dept_id, dept_name
所以我的问题是,如果特定部门有超过3名员工,我需要选择员工姓名和姓氏。我不确定这样做的最好方法。任何帮助将不胜感激。
答案 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)