我有一张桌子,我可以拉进一位经理"和他相关的"员工"但是我在使语法正确方面遇到了一些问题。
我的表结构:
管理者:
User_ID | User_Name
1 | jay
2 | matt
3 | john
4 | Employee1
5 | Employee2
6 | Employee3
雇员:
Parent_ID | Employee_ID
1 4
1 5
1 6
所以你在这里看到的是我想为一位特定的经理吸引所有员工。
尝试查询:
select managers.user_name
from managers
ifnull(group_concat(distinct(employees.employee_id) SEPARATOR ';'), 'Nobody Under You') "Employees"
left join employees on employees.employee_id=managers.id
group by managers.user_name
我希望它有:
jay --> Employee1; Employee2; Employee3
但它有:
jay --> 4;5;6
我的问题不是员工ID,而是我想要关联的user_name ...有人可以协助吗?>
答案 0 :(得分:1)
奇怪的是,你已经在Managers
表中找到了员工,但无论如何,你需要再次加入同一个表。例如
SELECT
Managers.User_Name,
COALESCE(GROUP_CONCAT(emp.User_Name SEPARATOR ';'), 'Nobody Under You') AS 'Employees'
FROM Managers
LEFT JOIN Employees ON Managers.User_ID = Employees.Parent_ID
LEFT JOIN Managers emp ON Employees.Employee_ID = emp.User_ID
GROUP BY Managers.User_Name