В настоящее время я работаю над рекурсивным запросом в базе данных Android SQLite. У меня есть таблица, содержащая активы, которые могут образовывать иерархию, ссылаясь на родителей. Например:Рекурсивный запрос CTE без результата верхнего уровня в SQLite
AssetId | ParentAssetId 1--2--5
----------------------- | |
1 | NULL | |--6--8
2 | 1 | | |
3 | 1 | | |--9
4 | 1 | |
5 | 2 | |--7
6 | 2 |
7 | 2 |--3
8 | 6 |
9 | 6 |--4--10
10 | 4
Мне нужно найти все потомки данной начальной точки, но не включая начальную точку. Например:
1 = 2,3,4,5,6,7,8,9,10
2 = 5,6,7,8,9
6 = 8,9
мне удалось получить эту работу, используя в качестве примера со страницы SQLite:
WITH RECURSIVE
Child(AssetId) AS (
VALUES (1)
UNION
SELECT Assets.AssetId FROM Assets, Child
WHERE Assets.ParentAssetID = Child.AssetId)
SELECT AssetId FROM Child WHERE AssetId != 1
Это работает, но я не рад о финале ИНЕКЕ чтобы отфильтровать исходный элемент. Есть ли другой способ запустить каскад без включения оригинального элемента?