Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie erhalte ich ein rekursives Ergebnis, indem ich eine selbstreferenzierende Tabelle in MySQL abfrage?

Sie werden kein rekursives Ergebnis direkt aus MySQL erhalten. Es gab kürzlich eine ähnliche Diskussion - es ist vielleicht mit einigen RDBMS möglich, die gespeicherte Prozeduren usw. verwenden, aber nicht mit Out-of-the-Box-SQL (siehe Wie kann ich Vorfahren-IDs für beliebige Rekursionstiefe erhalten in eine SQL-Abfrage? ).

Was ich stattdessen in ähnlichen Fällen mache:Alle Kommentare ohne Eltern erhalten. Holen Sie sich dann für jeden Kommentar seine untergeordneten Elemente (wenn Sie die "Tiefe" jedes Kommentars speichern, können Sie alle diese untergeordneten Elemente und alle untergeordneten Elemente der nächsten Schichten mit einer SQL-Abfrage abrufen). Speichern Sie die Kinder an der entsprechenden Stelle in Ihrer Baumstruktur, wiederholen Sie.

Wenn Sie eine niedrigere Ebene benötigen, müssen Sie möglicherweise etwas Code teilen, Ihre Datenstruktur erklären, was Sie bisher versucht haben usw., dies ist nur der allgemeine Ansatz.