作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一个“联系人”列表。有些“联系人”是 parent ,有些是 child 。有些联系人有不止一个 child 。有些 child 有不止一位 parent 。联系人可以是 parent 和 child (孙子)。
联系人之间的关系映射在表“parents_and_children”中。
"contacts" table
+----+------+
| id | name |
+----+------+
| 1 | p1 |
| 2 | p2 |
| 3 | p3 |
| 4 | p4 |
| 5 | p5 |
| 6 | p6 |
+----+------+
"parents_and_children" table
+----+-----------+----------+
| id | parent_id | child_id |
+----+-----------+----------+
| 1 | 1 | 2 |
| 2 | 1 | 3 |
| 3 | 3 | 4 |
| 4 | 5 | 2 |
| 5 | 5 | 3 |
| 6 | 5 | 6 |
+----+-----------+----------+
at查询的结果应该是:
+-------------------+------------------+
| parent(s) name(s) | children name(s) |
+-------------------+------------------+
| p1, p5 | p2, p3 |
| p3 | p4 |
| p5 | p6 |
+-------------------+------------------+
请注意,p3 是 p1 和 p5 的子级,也是 p4 的父级。 p5 是 p2 和 p3 以及 p1 的父级,而 p6 本身就是 p2 和 p3 的父级。
我不需要完整的解决方案。请给我指明方向,我会自己到达那里。到目前为止,没有任何效果。
最佳答案
您可以使用 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
关于MySql Group By 同一张表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42516917/
我是一名优秀的程序员,十分优秀!