PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

postgres - с рекурсивно

Първо, вашият (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;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мащабиране на PostgreSQL с помощта на пулери за връзки и балансьори на натоварване

  2. Създаване на персонализиран оператор за равенство за тип PostgreSQL (точка) за DISTINCT извиквания

  3. PostgreSQL срещу версии на ядрото на Linux

  4. MySQL/Postgres заявка за данни с интервал от 5 минути

  5. Грешка при свързване към postgresql с помощта на sqlalchemy