まず、(2, 'grandparent', null)
(3, 'grandparent', null)
である必要があります それが本当に祖父母なら。次に、クエリの再帰的な半分での(暗黙の)結合条件が逆方向であるため、親をrt.levelparent
から取得する必要があります。 t.parent_level
ではなく :
WITH RECURSIVE recursetree(level_id, levelparent) AS (
SELECT level_id, parent_level
FROM level
WHERE level_id = 197
UNION ALL
SELECT t.level_id, t.parent_level
FROM level t JOIN recursetree rt ON rt.levelparent = t.level_id
-- join condition fixed and ANSI-ified above
)
SELECT * FROM recursetree;