Diciamo che si ha la seguente tabella:ottenere i dati gerarchici da tabelle autoreferenziali
items(item_id, item_parent)
... ed è un autoreferenziale tavolo - item_parent
si riferisce a item_id
.
Quale query SQL verrà utilizzata per SELEZIONARE tutti gli elementi nella tabella insieme alla loro profondità in cui la profondità di un articolo è la somma di tutti i genitori e i nonni di quell'elemento.
Se il seguente è il contenuto della tabella:
item_id item_parent
----------- -----------
1 0
2 0
3 2
4 2
5 3
... la query deve recuperare la seguente serie di oggetti:
{ "item_id": 1, "profondità": 0 }
{ "item_id": 2, "profondità": 0}
{ "item_id": 3, "profondità": 1}
{ "item_id": 4, "profondità": 1}
{" item_id ": 5," profondità ": 2}
P.S. Sto cercando un approccio supportato da MySQL.
Cerca "CTE ricorsivo". – RBarryYoung
Quale database e versione? Le query ricorsive sono specifiche del fornitore, se supportate del tutto. – RedFilter
@RBarryYoung: Questo presuppone che stia utilizzando MS SQL Server. –