这是我的桌子:
id |parent_id |name
-------|-----------|--------------------
1| 0|Kevin Gravey
2| 0|John Chen
3| 1|Clark Garvey
4| 2|Halsey Chen
5| 3|Carl Garvey
6| 4|Betty Chen
7| 5|Rick Garvey
8| 6|Donna Chen
10| 5|Chris Garvey
11| 6|Harrington Chen
但我需要使表格看起来像这样:
id |parent_id |name
-------|-----------|--------------------
1| 0|Kevin Gravey
2| 0|John Chen
3| 0|Kevin Gravey
4| 0|John Chen
5| 0|Kevin Gravey
6| 0|John Chen
7| 0|Kevin Gravey
8| 0|John Chen
10| 0|Kevin Gravey
11| 0|John Chen
我使用了来自的查询this https://stackoverflow.com/a/31745768/12273235但我得到的是:
id |parent_id |name
-------|-----------|--------------------
1| 0|
2| 0|
3| 1|Kevin Gravey
4| 2|John Chen
5| 3|Clark Garvey
6| 4|Halsey Chen
7| 5|Carl Garvey
8| 6|Betty Chen
10| 5|Rick Garvey
11| 6|Donna Chen
有人知道查询是什么吗?我正在使用 postgre。
你走对了。考虑使用这个:
with recursive tree as (
select id,
parent_id,
array[id] as all_parents,
name as parent_name
from hierarchy
where parent_id = 0
union all
select c.id,
p.parent_id,
p.all_parents,
p.parent_name
from hierarchy c
join tree p
on c.parent_id = p.id
and c.id <> all (p.all_parents)
)
select id, parent_id, parent_name
from tree;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)