MySQL unterstützt keine rekursiven Abfragen, also müssen Sie es auf die harte Tour machen:
- Wählen Sie die Zeilen aus, in denen
ParentID = X
wobeiX
ist dein Stamm. - Erfassen Sie die
Id
Werte aus (1). - Wiederholen Sie (1) für jede
Id
aus (2). - Rekursionieren Sie von Hand weiter, bis Sie alle Blattknoten gefunden haben.
Wenn Sie eine maximale Tiefe kennen, können Sie Ihre Tabelle bis zur maximal möglichen Tiefe mit sich selbst verbinden (unter Verwendung von LEFT OUTER JOINs) und dann die NULLen bereinigen.
Sie könnten auch Ihre Baumdarstellung in verschachtelte Mengen ändern .