per una tabella del tipo:

categorie
id|cat|pid<---id padre

le categorie principali hanno pid=0 (s'attaccano...)

Codice PHP:
SELECT f.*,p.*, count(f.id) AS figli FROM categorie f JOIN categorie p ON p.id=f.pid GROUP BY p.id WHERE p.pid=