1

我有一个员工表,其中包含有关员工的所有信息,包括 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
4

1 回答 1

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

您必须将表与自身连接起来。并且您需要使用左连接,以便您获得不管理任何人的员工。

于 2013-06-07T01:09:55.300 回答