使用递归自联接的Mysql查询

时间:2013-10-08 09:17:40

标签: mysql

我正在尝试使用递归自联接编写查询。我的表格如下:

表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  

在上表中,Manager1Manager2,...,Employe2Manager1担任部门主管的公司的员工Manager2正在向Manager1报告,Manager3正在向Manager2报告,此关联发布位于table2,其中Par_EMP_ID是{1}}的reportii和列EMP_ID是记者的身份。现在我想要结果如下:

EMP_ID

1 个答案:

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