我一直在使用Postgres ltree
构造来存储层次结构。现在,我想收集树中所有的叶节点。是否有一个直接的机制来做到这一点?
CREATE TABLE foo
AS
SELECT node::ltree
FROM ( VALUES
('Top.Astronomy'),
('Top.Astronomy.Astrophysics'),
('Top.Pictures'),
('Top.Pictures.Stars')
) AS t(node);
我怎么回去?
Top.Astronomy.Astrophysics
Top.Pictures.Stars
发布于 2017-04-20 06:58:13
使用@>
一种方法是使用@>
SELECT *
FROM foo AS f1
WHERE NOT EXISTS (
SELECT *
FROM foo AS f2
WHERE f1.node @> f2.node
AND f1.node <> f2.node
);
node
----------------------------
Top.Astronomy.Astrophysics
Top.Pictures.Stars
(2 rows)
https://stackoverflow.com/questions/43510596
复制相似问题