pato12,
esto de foro.* es sospechoso, pues tratas de mostrar todos los campos de la tabla cuyo alias es foro, es decir, foros_table, además del count. Ahí sólo podrías mostrar el campo por el que agrupas, es decir, foro.id. Prueba esto y nos dices:
Código SQL:
Ver originalSELECT T1.idforo, T1.temas, T1.mensajes FROM (SELECT foro.id idforo, COUNT(temas.id) temas, COUNT(mensajes.id) mensajes FROM foros_table foro LEFT JOIN temas_table AS temas ON temas.foro=foro.id LEFT JOIN temas_table AS mensajes ON mensajes.foro=foro.id GROUP BY foro.id)T1 ORDER BY t1.temas, T1.mensajes
No entiendo por qué ordenas por un campo llamado posision que no veo por ninguna parte.