Rekursion i SQL

Relationsdatabashanteringssystem baserade på SQL är bara delvis lämpliga för hierarkiska eller rekursiva frågor. Andra system som ArangoDB är bättre lämpade för detta (det var ett bra föredrag om detta på GOTO 2016 ). Det är dock också möjligt att skapa rekursiva frågor i SQL med hjälp av Common Table Expressions , vilket gör att du till exempel kan fråga klassiska föräldra-/barntabeller för alla förfäder och ättlingar.


I PostgreSQL ser det till exempel ut så här:

0672c4761d202a35a9059fa137ace7c3/ca9b571d40544dcd8e0afc989c89c49f8b1f3251

Om du vill få alla barn till ett visst objekt_id använder du de vanliga tabelluttrycken:

0672c4761d202a35a9059fa137ace7c3/ca9b571d40544dcd8e0afc989c89c49f8b1f3251

Att fråga efter föräldrarna är inte heller något problem:

0672c4761d202a35a9059fa137ace7c3/ca9b571d40544dcd8e0afc989c89c49f8b1f3251

Tillbaka