sql >> Databáze >  >> RDS >> PostgreSQL

postgres - s rekurzivním

Nejprve váš (2, 'grandparent', null) by měl být (3, 'grandparent', null) jestli je to opravdu prarodič. Za druhé, vaše (implicitní) podmínka spojení v rekurzivní polovině vašeho dotazu je obrácená, chcete dostat nadřazeného z rt.levelparent spíše než 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. Jak se připojit k PostgreSQL z Phoenix Web App přes SSL?

  2. Co je s (nolock) na serveru SQL?

  3. Shoda celých slov s tečkami v MySQL

  4. použijte WHERE CLAUSE pro vyhledávání dat od data A do data B