Rekurencja w SQL

Systemy zarządzania relacyjnymi bazami danych oparte na języku SQL są tylko warunkowo odpowiednie dla zapytań hierarchicznych lub rekurencyjnych. Inne systemy, takie jak ArangoDB, są tutaj lepsze (była o tym świetna rozmowa na GOTO 2016 ). Możesz również generować zapytania rekurencyjne w języku SQL za pomocą typowych wyrażeń tabelowych, a tym samym wykonywać zapytania w klasycznych tabelach nadrzędnych / podrzędnych dla wszystkich przodków i potomków.


Na przykład w PostgreSQL wygląda to tak:

0672c4761d202a35a9059fa137ace7c3

Jeśli chcesz uzyskać wszystkie elementy podrzędne określonego elementu item_id, użyj wspólnych wyrażeń tabelowych:

0672c4761d202a35a9059fa137ace7c3

Zapytanie rodziców również nie stanowi problemu:

0672c4761d202a35a9059fa137ace7c3

Plecy