Med MySQL er den nemmeste måde jeg gør dette på at gemme alt stier i træet, hvilket skaber en transitiv lukning .
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
Nu kan du forespørge det således:
SELECT t.*
FROM table_children c
JOIN table t ON c.child = t.id
WHERE c.parent = 0;
Se også:
- Hvad er den mest effektive/elegante måde at parse en flad tabel til et træ?
- Modeller til hierarkiske data med SQL og PHP
- SQL Antipatterns:Avoiding the Pitfalls of Database Programming