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/ca9b571d40544dcd8e0afc989c89c49f8b1f3251
Dacă doriți să obțineți toți copiii unui anumit item_id, utilizați expresiile comune în tabel:
0672c4761d202a35a9059fa137ace7c3/ca9b571d40544dcd8e0afc989c89c49f8b1f3251
Nici interogarea părinților nu este o problemă:
0672c4761d202a35a9059fa137ace7c3/ca9b571d40544dcd8e0afc989c89c49f8b1f3251