sql >> Database teknologi >  >> RDS >> PostgreSQL

postgres - med rekursiv

Først og fremmest din (2, 'grandparent', null) skal være (3, 'grandparent', null) hvis det virkelig er en bedsteforælder. For det andet er din (implicitte) join-betingelse i den rekursive halvdel af din forespørgsel baglæns, du ønsker at få forælderen ud af rt.levelparent i stedet for 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. Hvordan trunkerer du alle tabeller i en database ved hjælp af TSQL?

  2. Brug af nzload til at indlæse specialtegn

  3. Søger efter flere numre i feltet med flere numre

  4. Forespørg data fra XML