sql >> Database >  >> RDS >> PostgreSQL

postgres - met recursief

Allereerst uw (2, 'grandparent', null) moet (3, 'grandparent', null) . zijn als het echt een grootouder is. Ten tweede, je (impliciete) join-voorwaarde in de recursieve helft van je query is achterstevoren, je wilt de parent uit rt.levelparent halen in plaats van 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;



  1. SQL SELECT-instructie expressiewaarde hergebruik voor andere expressie

  2. Elastische bonenstaak maakt geen RDS-parameters

  3. Voeg dagen toe aan de huidige datum vanuit MySQL met PHP

  4. Buffert MySQL Connector/J rijen bij het streamen van een ResultSet?