sql >> Database >  >> RDS >> Mysql

maak een treeview-loopquery

Zoals je de boom nu hebt opgeslagen, is het niet mogelijk om de hele boom in één pure SQL-query te krijgen. Je moet een lus in een andere taal schrijven (C#, opgeslagen procedure die lussen ondersteunt, ...) om de boom op te halen.

Dit is een mooi artikel waarin wordt beschreven hoe u kunt werken met uw manier van opslaan van de boom (inclusief het ophalen van de boom en het verwijderen van items uit de boom).

Nog interessanter, dat artikel beschrijft ook een manier om bomen op te slaan in een databasetabel die doet laat het ophalen van de hele boom in een enkele query toe. Het heet pre-order tree traversal . U kunt het opzoeken voor meer informatie. Ik heb een C#-implementatie gevonden . Er zit wat meer logica in dan de manier waarop je nu gebruikt, maar het is beter voor alle bomen, behalve voor de kleinste bomen.




  1. Django Foreign key in een ander schema

  2. Lege tekenreeks bijwerken naar NULL voor de hele database

  3. Windows IIS - PHP PDO Mysql Kan stuurprogramma niet vinden

  4. Is er een equivalent van SET NOCOUNT van SQL Server in MySQL?