Hola yomesmo:
Hay muchas formas de abordar este problema, sólo era cuestión de investigar un poco, pero veamos si esto te sirve. En primer lugar, hay que considerar hechos importantes que no mencionas en tu post.
1. pueden haber usuarios que sólo hayan publicado temas, pero no respuestas????
2. puede haber usuarios que sólo hayan publicado respuestas pero no temas????
3. todos los usuarios tienen al menos un tema y una respuesta publicados???
A partir de este hecho, las estrategias pueden variar entre utilizar join's o utilizar union's, la respuesta ideal sería utilizar un FULL JOIN, pero MySQL no soporta este tipo de unión, sin embargo para lo que planteas podrías simplemente hacer un UNION. Checa este script:
Código MySQL:
Ver original+-----------+-------------+
| usuarioId | descripcion |
+-----------+-------------+
| 1 | tema 1 |
| 1 | tema 2 |
| 2 | tema 3 |
| 3 | tema 4 |
+-----------+-------------+
+-----------+-------------+
| usuarioId | descripcion |
+-----------+-------------+
| 3 | respuesta 1 |
| 2 | respuesta 2 |
| 2 | respuesta 3 |
| 5 | respuesta 4 |
+-----------+-------------+
+-----------+----------+
+-----------+----------+
| 1 | 2 |
| 2 | 3 |
| 3 | 2 |
| 5 | 1 |
+-----------+----------+
Para obtener sólo los diez usuarios que más hay participados ordenas por el total de manera descendente y utilizas LIMIT. Te repito, esta es solo una de las formas en que puedes resolver tu consulta, pero podrías buscar alguna otra alternativa. Te recomiendo que le preguntes a San GOOGLE ¿Cómo simular un FULL OUTER JOIN con MySQL?
Saludos
Leo.