Mit MySQL mache ich das am einfachsten, indem ich alle speichere Pfade im Baum, wodurch ein transitiver Abschluss entsteht .
table_children
parent child
0 0
1 1
2 2
3 3
4 4
0 1
0 2
0 3
0 4
1 2
1 3
1 4
3 4
Jetzt können Sie es so abfragen:
SELECT t.*
FROM table_children c
JOIN table t ON c.child = t.id
WHERE c.parent = 0;
Siehe auch:
- Was ist der effizienteste/eleganteste Weg, eine flache Tabelle in einen Baum zu parsen?
- Modelle für hierarchische Daten mit SQL und PHP
- SQL-Antipatterns:Vermeidung der Fallstricke der Datenbankprogrammierung