
Originariamente inviata da
LuckySevenRoX
Salve, ho realizzato un sistema per poter creare dei Menu/Cataloghi e inserire delle sottocategorie (fino al terzo livello). Un esempio che potremmo fare:
Menu1 > Birre
Menu1 > Pizze > Tradizionali
Menu1 > Pizze > Speciali
Menu2 > ....
le tabelle che abbiamo sono 'cataloghi' e 'cataloghi_categorie'
i campi importanti su 'cataloghi sono: id, titolo
i campi importanti su 'cataloghi_categorie' sono: id, catalogo_id, titolo, parent_id (che può essere 0 se è una sottocategoria diretta o contenere un ID di cataloghi_categorie)
questa query che ho realizzato funziona:
Codice PHP:
SELECT
c.titolo as PRINCIPALE,
cc2.titolo as SECONDO,
cc.titolo as TERZO
FROM cataloghi c
JOIN cataloghi_categorie cc
ON c.id = cc.id_catalogo
LEFT JOIN cataloghi_categorie cc2
ON cc.parent_id = cc2.id
WHERE ...
la query funziona bene, l'unica cosa è che se non ho un terzo livello ma solo un secondo livello, anzichè valorizzarmi il campo 'SECONDO', mi valorizza il 'TERZO', lasciando secondo a 'NULL'
Come posso migliorare la mia query, anche in termini di prestazioni?
Altra domanda: se le sottocategorie fossero 'infinite', che query mi conviene utilizzare?
Grazie