Rekursion in SQL

Relationale Datenbankmanagementsysteme auf Basis von SQL eignen sich nur bedingt für hierarchische oder rekursive Abfragen. Hier sind andere Systeme wie ArangoDB besser (einen tollen Talk dazu gab es auf der GOTO 2016). Man kann aber auch in SQL mit Hilfe von Common Table Expressions rekursive Abfragen erzeugen und so z.B. klassische Parent-/Child-Tabellen auf alle Vorfahren und Nachfahren abfragen.


In PostgreSQL sieht das dann beispielsweise so aus:

0672c4761d202a35a9059fa137ace7c3

Will man nun alle Kinder einer bestimmten item_id bekommen, nutzt man die Common Table Expressions:

0672c4761d202a35a9059fa137ace7c3

Auch die Abfrage der Eltern ist so kein Problem:

0672c4761d202a35a9059fa137ace7c3

Zurück