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

标签 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...有人可以帮忙吗?>

最佳答案

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 fiddle ~ http://sqlfiddle.com/#!9/698e5d/7

关于mysql - 在查询中多次从 id 字段中提取关联的 user_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33748690/

相关文章:

php - 如何根据表单名称显示数据库结果

php - 数据的异常排序 - 按固定数据 id 排序

MYSQL - 如果不存在且没有明显的主键/唯一键,则插入表中

java - 交付启动 MySQL 的 java 应用程序(独立应用程序)

mysql - 空时连接 (mysql)

mysql - Laravel 中未提交表单?

python - 如何在没有 rhc 端口转发的情况下在 OpenShift 上访问 MySQL?

php - 信息模式表描述/注释

php - 如何防止 PHP 中的 SQL 注入(inject)?

mysql - 升级到 ubuntu 12.04 后无法在 Rails 中运行我的服务器