相关疑难解决方法(0)

SQL选择一行的后代

假设在SQL中实现树结构,如下所示:

CREATE TABLE nodes (
    id INTEGER PRIMARY KEY,
    parent INTEGER -- references nodes(id)
);
Run Code Online (Sandbox Code Playgroud)

尽管可以在此表示中创建循环,但我们假设我们永远不会让这种情况发生.该表只存储一个根集合(父节点为null的记录)及其后代.

目标是,给定表中节点的id,找到作为其后代的所有节点.

阿是的后代乙如果任一个的父是乙或甲的父是的后代乙.注意递归定义.

以下是一些示例数据:

INSERT INTO nodes VALUES (1, NULL);
INSERT INTO nodes VALUES (2, 1);
INSERT INTO nodes VALUES (3, 2);
INSERT INTO nodes VALUES (4, 3);
INSERT INTO nodes VALUES (5, 3);
INSERT INTO nodes VALUES (6, 2);
Run Code Online (Sandbox Code Playgroud)

代表:

1
`-- 2
    |-- 3
    |   |-- 4
    |   `-- 5
    |
    `-- …
Run Code Online (Sandbox Code Playgroud)

sql sqlite recursion recursive-query

4
推荐指数
2
解决办法
1676
查看次数

标签 统计

recursion ×1

recursive-query ×1

sql ×1

sqlite ×1