我有一个自引用外键(reportsTo),它引用同一个表的 emp_id
我想找出向老年人汇报的员工。
我运行了以下查询
mysql> SELECT GROUP_CONCAT(emp_name SEPARATOR ',') as Employees,reportsTo from employees GROUP BY reportsTo;
+-----------------------------+-----------+
| Employees | reportsTo |
+-----------------------------+-----------+
| ram,ham,anir | 1 |
| abhi,kuanl,rakesh,raja,rama | 2 |
| vicky,sam | 3 |
| dhanapal,naina | 4 |
+-----------------------------+-----------+
但是在 REPORTSTO 列中,我想要他们所报告的人名。
答案 0 :(得分:2)
使用 SELF JOIN 获取员工报告的名称。
试试这个:
SELECT GROUP_CONCAT(e.emp_name SEPARATOR ',') AS Employees,
e.reportsTo, e1.emp_name
FROM employees e
INNER JOIN employees e1 ON e.reportsTo = e1.emp_id
GROUP BY e.reportsTo;