如何在mysql中的一行中获取多个项目?

时间:2013-06-07 00:57:36

标签: mysql

我有一个员工表,其中包含员工的所有信息,包括manager_id,例如:

id name manager_id
1  Joe    5 
2  Mary   5
3  Bill   5
4  Jane   6
5  Matt   6
6  Walt   7

我想获得一份人员名单,并为每个人提供所有直接报告。是否可以创建一个查询来为我提供以下输出:

Employee   Direct Reports
Joe
Mary
Bill
Jane
Matt        Joe, Bill, Mary
Walt        Jane, Matt

1 个答案:

答案 0 :(得分:1)

这样:

SELECT s.name AS employee, group_concat( e.name ) 
FROM employees s
LEFT OUTER JOIN employees e ON s.id = e.manager_id
GROUP BY s.id

你必须自己加入桌子。而且您需要使用左连接,这样您就可以获得不管理任何人的员工。