è un'ora che cerco di creare un codice che, facendo select e prelevando n campi, mi facesse un select per ogni riga (e se c'è di bisogno per le altre righe a venire) in modo da creare una struttura gerarchica

suppotene una tabella di questo tipo
codice:
id | appartiene_a_id
1  |    0
2  |    0
3  |    1
4  |    1
5  |    2
6  |    4
quindi la struttura gerarchica sarebbe

codice:
1
\__3
   4
   \__6
2
\__5
cos'è possibile far una cosa del genere con l'iterazione? Il problema è ke la profondità è "illimitata".