我有一个员工表,其中包含员工的所有信息,包括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
答案 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
你必须自己加入桌子。而且您需要使用左连接,这样您就可以获得不管理任何人的员工。