我正在尝试使用递归自联接编写查询。我的表格如下:
表1
EMP_ID Name
1 Manger1
2 Manger2
3 Manger3
4 Employ1
5 Employ2
表2
Par_EMP_ID EMP_ID
1 2
2 3
3 4
3 5
在上表中,Manager1
,Manager2
,...,Employe2
是Manager1
担任部门主管的公司的员工Manager2
正在向Manager1
报告,Manager3
正在向Manager2
报告,此关联发布位于table2
,其中Par_EMP_ID
是{1}}的reportii和列EMP_ID
是记者的身份。现在我想要结果如下:
EMP_ID
答案 0 :(得分:1)
<强>更新强>
根据您的规格,这是解决方案:
SELECT e.names member, d.name child
FROM MEMBERS d INNER JOIN
(SELECT a.id, GROUP_CONCAT(c.name) NAMES
FROM MEMBERS a
INNER JOIN RELATIONSHIP b ON a.id = b.MEM_ID
INNER JOIN MEMBERS c ON c.id = b.PAR_MEM_ID
GROUP BY a.id) e ON e.id = d.id
结果:
| MEMBER | CHILD |
|--------------------|--------------|
| Great Grand Father | Grand Father |
| Grand Father | Father |
| Father | Child1 |
| Father | Child2 |
注意:结果可能取决于您的样本数据。我还更新了下面的SQLFiddle,所以你可能想要检查一下。
这是SQLFiddle。