You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PostgreSQL递归CTE获取多对多关系下指定父节点的家族树

PostgreSQL递归CTE查询家族树示例

现有Parents表存储家族成员信息,Parents_rel表记录父子关联关系(支持多对多及层级嵌套),以下是用递归CTE查询指定父节点(ID=1的Bob)完整家族树的PostgreSQL语法示例:

数据表结构

Parents表

idname
1bob
2rick
3ann
4charles
5carlos
6maria

Parents_rel表

Parent_idChild_id
12
13
24
56

递归查询SQL代码

WITH RECURSIVE family_tree AS (
    -- 递归起点:选取目标父节点Bob(ID=1)
    SELECT id, name
    FROM Parents
    WHERE id = 1
    UNION ALL
    -- 递归遍历:关联获取所有层级的子节点
    SELECT p.id, p.name
    FROM Parents p
    INNER JOIN Parents_rel pr ON p.id = pr.Child_id
    INNER JOIN family_tree ft ON pr.Parent_id = ft.id
)
SELECT id, name FROM family_tree ORDER BY id;

预期输出

idname
1bob
2rick
3ann
4charles

内容的提问来源于stack exchange,提问作者zango123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 10:54:33