使用此处的其他问题和 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)