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