Ho questa tabella:
id_cat è la chiave primaria, id_parent una FK verso la tabella Categoria stessa.codice:*Categoria id_cat | id_parent |name
Con questa struttura rappresento una gerarchia di categorie dove ognuna di esse ha un link alla categoria padre; solo le categorie di livello piu alto hanno id_parent = id_cat.
Ora devo fare una query che mi restituisca, per ogni categoria, il numero di sottocategorie contenute.
Esempio:
Ho questa tabella:
Da queste entry vorrei che fosse prodotto un risultato di questo tipo:codice:*Categoria id_cat | id_parent |name 0 0 Root 1 0 Saponi 2 1 Shampoo 3 1 Saponedimarsiglia 4 0 Animale 5 4 Pecora 6 4 Capra
Mi sembra una cosa molto banale ma forse ho bevuto troppa birra ultimamente e mi sono incaprettato su questa query:codice:cat | sottocategorie 0 2 1 2 2 0 3 0 4 2 5 0 6 0
Cosa non va?codice:SELECT *,id as cid, (SELECT COUNT(*) FROM categoria WHERE categoria.id=cid AND id!=parent) as subcat FROM categoria

Rispondi quotando