Sistemele de gestionare a bazelor de date relaționale bazate pe SQL sunt potrivite doar parțial pentru interogări ierarhice sau recursive. Alte sisteme, cum ar fi ArangoDB, sunt mai bune aici (s-a vorbit despre asta la GOTO 2016 ). Dar puteți genera, de asemenea, interogări recursive în SQL cu ajutorul expresiilor de tabel comune și, astfel, interogați tabele 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