Tema: Distinct
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/03/2007, 13:40
javi_bus
 
Fecha de Ingreso: enero-2004
Mensajes: 63
Antigüedad: 20 años, 3 meses
Puntos: 0
Re: Distinct

Si me he enterado bien, para cada registro de tabla1, hay asociados varios en tabla2. Y se trata de obtener los registros de tabla1 incluyendo para cada uno de ellos el registro correspondiente de la tabla2 cuya fecha sea mayor.

Si es así olvida el distinct. Mejor usa el group by. La idea es agrupar los registros obtenidos por el id común y después meter la clausula having, que actúa sobre cada grupo. Sería algo así:

Código:
SELECT {loquesea} FROM tabla1 INNER JOIN tabla2 USING(id_comun) 
GROUP BY tabla1.id_comun HAVING MAX(tabla2.fecha_comentario)
No estoy nada seguro de que funcione el "max" ahí puesto. Pero la idea base es esa: la clausula "order by" te agrupa los resultados en función del campo que quieras y "having" que actúa como el "where" pero solamente sobre cada grupo, no sobre el total de resultados como lo hace esta última.

Un saludo