小编dus*_*ash的帖子

通过自连接表递归获取树

使用此处的其他问题和 Postgresql 文档,我设法构建了一个多对多自联接表。

但是添加一个WHERE条款给我带来了麻烦。

问题:

ACategory可以有许多子类别和许多父类别。给定 a category.Id,我想检索类别、类别儿童、儿童的儿童等。

示例:给定这个结构:

child_1
    child_11
        child_111
        child_112
            child_1121
    child_21
child_2
Run Code Online (Sandbox Code Playgroud)

给定:一个子句 id = child_11

预期结果: child_11, child_111, child_112, child_1121

实际结果: child_11, child_111, child_112

这是我的尝试:http : //sqlfiddle.com/#!17/3640f/2

如果 Sqlfiddle 关闭:https ://www.db-fiddle.com/#&togetherjs=LhDjxfPHo6

注意:我不在乎复制 where 子句,我的应用程序可以处理

表结构:

CREATE TABLE Category(id SERIAL PRIMARY KEY, name VARCHAR(255));
CREATE TABLE Categories(parent_id INTEGER, child_id INTEGER, PRIMARY KEY(parent_id, child_id));

ALTER TABLE Categories ADD FOREIGN KEY (parent_id) REFERENCES category (id);
ALTER TABLE Categories ADD …
Run Code Online (Sandbox Code Playgroud)

postgresql recursive many-to-many self-join

5
推荐指数
1
解决办法
175
查看次数

标签 统计

many-to-many ×1

postgresql ×1

recursive ×1

self-join ×1