Używanie zapytania MySQL do przechodzenia wierszy w celu utworzenia drzewa rekurencyjnego

Mam tabelę zestawień materiałów, która jest skonfigurowana w następujący sposób:
element - rodzic

Końcowym rezultatem, kiedy wyświetlam wykaz materiałów, jest to, że jest on wyświetlany w następujący sposób:

item 1  - parent 0    
    item 2 - parent 1    
    item 3 - parent 1    

Ostateczny wynik może być również wielopoziomowy w następujący sposób:

item 3 - parent 0    
    item 4 - parent 3    
    item 76 - parent 3    

I może trwać bez końca:

item 76 - parent 0    
    item 46 - parent 76    

item 46 - parent 0     
    item 25 - parent 46

W tej chwili albo dostaję 1 poziom z bazy danych:

SELECT * FROM bom WHERE parentId = $itemId (shorthand)

Albo wyciągnij każdy wiersz z tabeli i użyj mojej funkcji rekurencyjnej, aby uporządkować tylko te, których potrzebuję, ale jest to oczywiście nieefektywne, ponieważ mogę potrzebować tylko 10 wierszy, ale ściągam 10 000 rekordów. Dane wyjściowe funkcji rekurencyjnej utworzą po prostu drzewo w następujący sposób:

item 1
   item 2
   item 3
      item 4
      item 76
         item 46
            item 25

Wiem tylko, że zaczynam od punktu 1. Pozycja 5 może mieć rodzica 11; nie muszą przechodzić sekwencyjnie. Chcę, aby wszystkie gałęzie dziecka znajdowały się na drzewie. Jak mogę zrobić to zapytanie w mysql?

questionAnswers(4)

yourAnswerToTheQuestion