“内容”表有一个列“ltree” - 内容项是使用基于此 ltree 的层次结构创建的。
例如:
标题 | 长树 |
---|---|
记录 1 | 1 |
记录 2 | 1.2 |
记录 3 | 1.2.3 |
我正在尝试做的是创建一个 SELECT 语句,在该语句中我收到记录子项的嵌套响应:
标题 | 孩子们 |
---|---|
记录 1 | {记录 2,{记录 3,{}}} |
目标是检索不同数量的“顶级”记录,以及通过 LTREE 分配给该顶级记录的嵌套子项
我尝试过:
SELECT DISTINCT title, ARRAY(SELECT title FROM content t WHERE t.ltree <@ content.ltree At.ltree != content.ltree) as children
这将为我提供
标题 | 孩子们 |
---|---|
记录 1 | {记录 2} |
记录 2 | {记录 3} |
记录 3 | {} |
但是,这只会为我提供“1 层深”的响应,我还没有找到一种方法来继续嵌套响应 - 如果可能的话 - 然后从上面的选择中删除记录 2 和记录 3它存在于嵌套记录之一中。
任何建议都非常感谢 - 当谈到 psql/sql 时,我并不完全在我的元素中。