· 8 years ago · Mar 21, 2018, 11:16 AM
1CREATE TABLE IF NOT EXISTS foobar (
2 id INTEGER NOT NULL PRIMARY KEY,
3 name TEXT NOT NULL,
4 ...
5 parent_id INTEGER
6);
7
8WITH RECURSIVE path(level, name, parentid) AS (
9 SELECT 0, name, parentid
10 FROM {TableName}
11 WHERE id = @id
12 UNION ALL
13 SELECT path.level + 1,
14 {TableName}.name,
15 {TableName}.parentid
16 FROM {TableName}
17 JOIN path
18 ON {TableName}.id = path.parentid
19)
20SELECT name
21FROM path
22ORDER BY level DESC;