Verwenden von MySQL-Abfragen zum Durchlaufen von Zeilen, um einen rekursiven Baum zu erstellen

Ich habe eine Stücklistentabelle, die so aufgebaut ist:
item - Elternteil

Das Endergebnis beim Anzeigen der Stückliste ist, dass sie folgendermaßen angezeigt wird:

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

Das Endergebnis könnte auch mehrstufig sein:

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

Und es kann unendlich weitergehen:

item 76 - parent 0    
    item 46 - parent 76    

item 46 - parent 0     
    item 25 - parent 46

Im Moment erhalte ich entweder nur eine Ebene aus der Datenbank:

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

Oder ziehen Sie jede Zeile aus der Tabelle und verwenden Sie meine rekursive Funktion, um nur die zu sortieren, die ich benötige. Dies ist jedoch offensichtlich ineffizient, da ich möglicherweise nur 10 Zeilen benötige, aber 10.000 Datensätze ziehe. Die Ausgabe der rekursiven Funktion erstellt einfach einen Baum wie diesen:

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

Ich weiß nur, dass ich bei Punkt 1 anfange. Punkt 5 könnte einen Elternteil von 11 haben; Sie müssen nicht fortlaufend sein. Ich möchte alle Kinderzweige im Baum haben. Wie könnte ich diese Abfrage in MySQL tun?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage