我想解决一个包含2个递归的问题。 在这两个递归之一中,我找到了一个问题的答案,即“特定输入(模板)的叶成员是什么?”这已经解决了。
在第二次递归中,我想针对许多其他输入(模板)运行此查询。
问题的第一部分:
我有一棵树,想找到它的叶子。可以使用以下查询解决递归的这一部分:
with recursive full_tree as (
select id, "previousVersionId", 1 as level
from template
where
template."id" = '5084520a-bb07-49e8-b111-3ea8182dc99f'
union all
select c.id, c."previousVersionId", p.level + 1
from template c
inner join full_tree p on c."previousVersionId" = p.id
)
select * from full_tree
order by level desc
limit 1
查询输出是一条记录,其中包括我感兴趣的叶子ID。这很好。
查询的第二部分:
这是问题所在。我想运行第一个查询n次。 目前,我只能在仅一个ID的情况下运行查询(示例中为“ 5084520a-bb07-49e8-b111-3ea8182dc99f”)。但是,如果我有100个此类ID的列表,该怎么办。 我的最终目标是对列表中的100个模板ID分别获得一个ID响应(叶ID)。 从理论上讲,一个查询使我可以对每个查询(例如100个模板ID可以解决我的问题。