tabela, na podstawie której mam zrobić to drzewo:
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT id_nadrzedne INT NOT NULL DEFAULT 0 nazwa VARCHAR(20) NOT NULL UNIQUE
jeśli id_nadrzedne = 0 to rekord jest traktowany jako korzeń (czy jak to się zwie

zakładając, że w bazie są już jakieś dane przykładowe:
Kod
1, 0, 'Procesory'
2, 0, 'Płyty główne'
3, 0, 'Dyski twarde'
4, 3, 'SATA'
5, 3, 'PATA'
6, 4, 'Western Digital'
7, 4, 'Seagate'
8, 5, 'Samsung'
9, 1, 'AM3'
10, 9, 'Athlon II 250'
2, 0, 'Płyty główne'
3, 0, 'Dyski twarde'
4, 3, 'SATA'
5, 3, 'PATA'
6, 4, 'Western Digital'
7, 4, 'Seagate'
8, 5, 'Samsung'
9, 1, 'AM3'
10, 9, 'Athlon II 250'
powinienem otrzymać drzewo:
Kod
Procesory
|--AM3
|--Athlon II 250
Płyty główne
Dyski twarde
|--SATA
| |--Western Digital
| |--Seagate
|--PATA
|--Samsung
|--AM3
|--Athlon II 250
Płyty główne
Dyski twarde
|--SATA
| |--Western Digital
| |--Seagate
|--PATA
|--Samsung
jedyne rozwiązanie, jakie przychodzi mi do głowy to programowa obróbka całej tabeli: pobranie i odpowiednie sortowanie przez program, a nie przez bazę... czy da się to jakoś inaczej rozwiązać?