如何在MYSQL中按公司对员工进行分组

时间:2011-03-15 20:59:16

标签: mysql sql group-by

我有两张桌子:Firms and Employees

我需要一个查询以便拉出所有公司记录,并在该查询中拉出每个公司的员工。

例如:

ABC Company
Smith, John
Johnson, Tim

DEF Inc.
Jones, Mack
Frank, Tom

我尝试过JOIN,UNION等等的变种而没有运气......

2 个答案:

答案 0 :(得分:3)

SELECT f.FirmName, GROUP_CONCAT(e.EmpName) AS Employees 
FROM Firm f LEFT JOIN Employee e on f.FirmID = e.FirmID
GROUP BY f.FirmID

答案 1 :(得分:0)

如下所示的查询将为您提供所有公司的列表,LEFT JOIN包括公司,即使它没有任何员工。

select f.name firmname, e.name
from firms f
left join employees e on e.firm_id = f.firm_id
order by firmname, e.name

从您的前端显示代码,逐步浏览记录,每当公司名称发生变化时,请开始新的公司部分。