aaaahhh, ok
Primero gracias por lo de la felicitación (¿?), segundo disculpa por no haberme detenido a estudiar bien tu problema
Veamos.
Te muestra repetidos por que en el SELECT tienes campos de cada una de las tablas involucradas, si leemos la
API de DISTINCROW el apartado final dice:
Cita: DISTINCTROW tiene efecto sólo cuando se seleccionan campos de algunas pero no de todas las tablas utilizadas en la consulta. DISTINCTROW se omite si la consulta incluye sólo una tabla o si incluye en los resultados campos de todas las tablas.
Un poco más detallado esta en el
MSDN
The DISTINCTROW keyword
Cita: The DISTINCTROW keyword is similar to the DISTINCT keyword except that it is based on entire rows, not just individual fields. It is useful only when based on multiple tables, and only when you select fields from some, but not all, of the tables. If you base your query on one table, or select fields from every table, the DISTINCTROW keyword essentially acts as an ALL keyword.
Muy interesante pero no nos resuelve nada, entonces, veamos tu consulta.
Cita: select distinct top 10 a.id_tema, b.tema from foro_mensajes a, foro_temas b where a.id_tema=b.id_tema order by a.fecha_creacion
Vemos que regresamos dos campos, entonces tendremos un Query resultante de solo lectura de dos columnas, y tu quieres ordenar por .... por una columna que no esta en dicho query, entonces ... ese es el problema
Si nos tomamos el tiempo de leer
la ayuda de la cláusula ORDER BY, podremos constatar lo anterior dicho.
Lamento no haberte puesto atención sino hasta ahora, es que a veces lo repetido de las preguntas hacen que uno ya conteste con trivialidades a veces poco útiles.
Saludos