【发布时间】:2018-03-08 16:46:09
【问题描述】:
考虑下表包含有关目录结构的信息:
CREATE TABLE t (id INTEGER, name TEXT, parent INTEGER);
INSERT into t VALUES
(1, "", 1),
(2, "a", 1),
(3, "b", 2),
(4, "c", 3),
(5, "d", 1);
SELECT * FROM t;
从这个表中应该可以得到一个包含路径名的列
""
"a"
"a/b"
"a/b/c"
"d"
似乎某种递归是必要的。到目前为止,我只设法创建了父目录的文本列:
SELECT b.id, b.name name, b.parent parent, a.name as parent_name
FROM t a INNER JOIN t b ON a.id = b.parent;
如何从这里开始?
【问题讨论】:
-
注意:你不能假设你的 rowid 是不可变的!
-
@LS_ᴅᴇᴠ 好点,我已经更改了示例,因此不使用 rowid