Ver Mensaje Individual
  #7 (permalink)  
Antiguo 20/07/2009, 18:03
Avatar de Myakire
Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: problema con Distinct (sql)

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