Recursivitate în SQL

Sistemele de gestionare a bazelor de date relaționale bazate pe SQL sunt doar parțial potrivite pentru interogări ierarhice sau recursive. Alte sisteme, precum ArangoDB , sunt mai potrivite pentru acest lucru (s-a discutat mult despre acest subiect la GOTO 2016 ). Cu toate acestea, este posibilă și crearea de interogări recursive în SQL folosind Common Table Expressions , permițându-vă, de exemplu, să interogați tabelele clasice părinte/copil pentru toți strămoșii și descendenții.


În PostgreSQL, așa arată, de exemplu:

0672c4761d202a35a9059fa137ace7c3

Dacă doriți să obțineți toți copiii unui anumit item_id, utilizați expresiile comune în tabel:

0672c4761d202a35a9059fa137ace7c3

Nici interogarea părinților nu este o problemă:

0672c4761d202a35a9059fa137ace7c3

Înapoi