Rekursive Abfrage
Eine SQL-Abfrage, die sich selbst aufruft, um Hierarchien und Graphen zu durchlaufen — umgesetzt mit WITH RECURSIVE. Der Standardweg, um ganze Teilbäume oder Vorfahrenketten aus einer Adjacency-List-Tabelle (parent_id-Modell) zu holen.
Mechanik: Eine rekursive CTE hat zwei Teile — einen Basisfall (die Startzeilen, z. B. ein bestimmter Knoten) und einen rekursiven Schritt, der gegen die CTE selbst zurückjoint, um die nächste Ebene zu holen (z. B. die Kinder). Die Datenbank iteriert, bis der Schritt keine weiteren Zeilen mehr liefert. Anwendungsfälle: „alle Unterkategorien holen“, „der gesamte Kommentarstrang“, „kürzester Weg in einem Graphen“, „alle Vorgesetzten über einem Mitarbeiter“. Unterstützt von PostgreSQL, SQL Server, Oracle, MySQL 8+, SQLite. Fallstricke: Ohne eine Bedingung, die die Terminierung garantiert, kann ein zyklischer Graph zu einer Endlosschleife führen (manche Datenbanken haben einen CYCLE-Schutz); tiefe Bäume können langsam werden. Sie ist der „Klebstoff“, der die Adjacency List praxistauglich macht. Hängt mit Adjacency List und CTE zusammen.