MYSQL-SELF引用外键

时间:2014-11-28 06:49:38

标签: mysql sql select join self-join

我有一个自引用外键(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 列中,我想要他们所报告的人名。

1 个答案:

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