Ich bin neu in mysql. Dies ist meine Tabelle:mysql rekursive (Baum) Eltern-Kind-Kategorie
Kategorie Tabelle:
id | name | prent
----------------------------
1 | os | null
2 | linux | 1
3 | ubuntu | 2
4 | xubuntu | 3
5 | lubuntu | 3
6 | zubuntu | 3
7 | zubuntu 2 | 6
8 | suse | 2
9 | fedora | 2
10 | windowse | 1
11 | windowse xp | 10
12 | windowse 7 | 10
13 | windowse 8 | 10
14 | food | null
15 | dance | null
Jede Kategorie einen Elternteil hat, und ich mag sie darauf vorzubereiten, in einem Drop-Down-Menü zu zeigen.
Dies ist, was ich zu bekommen:
id | name | depth
----------------------------
1 | os | 0
2 | -linux | 1
3 | --ubuntu | 2
4 | ---xubuntu | 3
5 | ---lubuntu | 3
6 | ---zubuntu | 3
7 | ----zubuntu 2 | 4
8 | --suse | 2
9 | --fedora | 2
10 | -windows | 1
11 | --windows xp | 2
12 | --windows 7 | 2
13 | --windows 8 | 2
14 | food | 0
15 | dance | 0
Hier Kategorien sind nicht in Ordnung und mein Code hat Kategorien, um für Kinder von ihren Eltern weit zur Verfügung zu stellen. Die Einrückung vor dem Namen wird basierend auf der Tiefe der Eltern jeder Kategorie bereitgestellt. Es gibt keine Begrenzung für die Anzahl der Kinder in jeder Kategorie aber die Gesamtzahl der Kategorien werden nicht überschreiten 100.
Gibt es eine Abfrage, die ein solches Ergebnis gibt? Ich ziehe es eine Abfrage, die in Form von active record in einem PHP-Framework ausgeführt werden kann.
Nr. mysql unterstützt keine rekursiven Abfragen. Sie müssen eine iterative Schleife in Ihrem Code ausführen, um sich den Baum hinunter zu arbeiten. –
Haben Sie hier gesucht? http://Stackoverflow.com/questions/8633497/mysql-how-to-query-parent-child?rq=1 –
@ EdManet, wie wäre es mit der Anzahl der Tiefe mehr als eins und zwei? – monjevin