Chciałbym, żeby moja baza selekcjonowała rekordy na drzewko kategorii. Struktura bazy wygląda tak:
Kod
+--+-----+-----+---------------+
|id|owner|allow| name |
+--+-----+-----+---------------+
|1 |NULL | 0 |Rękodzielnictwo|
|2 | 1 | 1 | Biżuteria |
|3 | 2 | 1 | Drobna |
|4 | 1 | 0 | Ze skóry |
|5 | 4 | 1 | Torby/Paski |
|6 | 4 | 1 | Kurtki |
|7 |NULL | 1 | Półprodukty |
+--+-----+-----+---------------+
Gdzie pole owner oznacza id rekordu nadrzędnego, lub NULL w przypadku jego braku (wtedy rekord jest korzeniem (root) ), allow i name to dane do pobrania. Ilość zagnieżdżeń jest nieograniczona, zatem zapytanie powinno, o ile to możliwe, korzystać z rekurencji. Czy da się coś takiego osiągnąć w MySQL 5?|id|owner|allow| name |
+--+-----+-----+---------------+
|1 |NULL | 0 |Rękodzielnictwo|
|2 | 1 | 1 | Biżuteria |
|3 | 2 | 1 | Drobna |
|4 | 1 | 0 | Ze skóry |
|5 | 4 | 1 | Torby/Paski |
|6 | 4 | 1 | Kurtki |
|7 |NULL | 1 | Półprodukty |
+--+-----+-----+---------------+
Spodziewany rezultat:
Kod
+> Rękodzielnictwo - bez allow
|+> Biżuteria - z allow
|-> Drobna - z allow
|+> Ze skóry - bez allow
|-> Torby/Paski - z allow
|-> Kurtki - z allow
-> Półprodukty - z allow
w formie tablicy wielowymiarowej w PHP
|+> Biżuteria - z allow
|-> Drobna - z allow
|+> Ze skóry - bez allow
|-> Torby/Paski - z allow
|-> Kurtki - z allow
-> Półprodukty - z allow