MySql Group由同一张表?

时间:2017-02-28 19:11:38

标签: mysql sql group-by

有一个“联系人”列表。有些“接触者”是父母,有些是儿童。有些联系人有一个以上的孩子。有些孩子有一个以上的父母。 联系人可以是父母和孩子(大孩子)。

联系人之间的关系映射在表“parents_and_children”中。

Object.entries

查询的结果应为:

stripTags

请注意,p3是p1和p5的子项,也是p4的父项。 p5是p2的亲本,p3是p1,p6是他自己。

我不需要完整的解决方案。请告诉我方向,我将自己到达那里。到目前为止,没有任何效果。

1 个答案:

答案 0 :(得分:0)

您可以像这样使用GROUP_CONCAT两次:

select pnames,
    group_concat(distinct cname order by cname separator ',') cnames
from (
    select group_concat(distinct c1.name order by c1.name separator ',') pnames,
        c2.name cname
    from parents_and_children p
    join contacts c1 on p.parent_id = c1.id
    join contacts c2 on p.child_id = c2.id
    group by c2.name
    ) t
group by pnames