Salve ragazzi,
ho due tabelle: NEWS e COMMENTS e creo una tabella che mi raccolga le notizie più commentate così:

codice:
SELECT NEWS.ID_NEWS,
    (SELECT COUNT(*) FROM COMMENTS WHERE NEWS.ID_NEWS = COMMENTS.ID_NEWS) AS NUM_COMMENTI
FROM NEWS
WHERE NEWS.LANG_ita = 0 AND NEWS.TIMESTAMP >= DATE_SUB('2013-01-09', INTERVAL 1 WEEK)
ORDER BY NUM_COMMENTI DESC
LIMIT 0,5
Mi tira fuori correttamente l'id della news e accanto i commenti, sono le ultime 5 ed è tutto giusto. Solo che no ho notato che facendo Explain mi fa un filesort.
A questo punto mi chiedo, dato che mi sto scervellando da tutta la sera, è inevitabile avere un filesort quando si fa un count e c'è da ordinare le righe?
Ho messo gli indici sia su News che su Comments ma il problema sta in quell'ORDER BY NUM_COMMENTS, che è un numero che non ho in nessuna tabella fisicamente.

Grazie mille