在查询中多次从id字段中提取关联的user_id

时间:2015-11-17 03:34:23

标签: mysql

我有一张桌子,我可以拉进一位经理"和他相关的"员工"但是我在使语法正确方面遇到了一些问题。

我的表结构:

管理者:

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 ...有人可以协助吗?>

1 个答案:

答案 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

SQL小提琴〜http://sqlfiddle.com/#!9/698e5d/7