Alle die über beliebig viele Ebenen zu der ID 772 gehören, also
772
773
774
776
777
Mein erster Denkansatz war ein UNION ALL zu benutzen,
da ich aber nicht weiß wieviele Ebenen es gibt habe ich diesen gleich wieder fallen lassen.
Bevor ich mich jedoch daran mache das Problem im Progamm zu lösen hoffe ich noch auf ein paar Ideen hier
test=*# select * from ebenen ;
id1 | id2
-----+-----
772 | 773
773 | 774
773 | 776
775 | 778
776 | 777
(5 rows)
test=*# with recursive t1 as (select * from ebenen where id1=772 union all select ebenen.* from ebenen, t1 where ebenen.id1=t1.id2) select id1 as id from t1 union select id2 from t1 order by id;
id
-----
772
773
774
776
777
(5 rows)