Mysql
 sql >> Database >  >> RDS >> Mysql

crea una query di looping treeview

Nel modo in cui hai archiviato l'albero ora, non è possibile ottenere l'intero albero in una query SQL pura. Devi scrivere un ciclo in qualche altro linguaggio (C#, stored procedure che supporta i loop, ...) per recuperare l'albero.

Questo è un bell'articolo che descrive come lavorare con il tuo modo di conservare l'albero (incluso il recupero dell'albero e la rimozione di elementi dall'albero).

Ancora più interessante, quell'articolo descrive anche un modo per archiviare alberi in una tabella di database che fa consentire il recupero dell'intero albero in una singola query. Si chiama attraversamento dell'albero del preordine . Puoi cercarlo per maggiori informazioni. Ho trovato un'implementazione C# . Implica un po' più di logica rispetto al modo in cui stai usando ora, ma è più performante per tutti gli alberi tranne quelli più piccoli.