MySQL nepodporuje rekurzivní dotazy, takže to musíte udělat tvrdším způsobem:
- Vyberte řádky, kde
ParentID = X
kdeX
je váš kořen. - Shromážděte
Id
hodnoty z (1). - Opakujte (1) pro každé
Id
od (2). - Opakujte ručně, dokud nenajdete všechny listové uzly.
Pokud znáte maximální hloubku, můžete připojit svůj stůl k sobě (pomocí LEFT OUTER JOINů) do maximální možné hloubky a poté vyčistit NULL.
Můžete také změnit reprezentaci stromu na vnořené sady .