Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/10/2012, 04:31
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: seleccionar registro con valor máximo en una columna

Este es un tema recurrente. Ya lo hemos tratado infinidad de veces.
El problema es la forma en que se combinan el GROUP BY y el ORDER BY. MySQL primero agrupa y despues ordena, pero agrupa en funcion del primero encontrado en la tabla.
Cuando quieres hacer agrupamiento con orden, necesitas primero ordenar:
Código MySQL:
Ver original
  1. SELECT vidId,
  2.     usuId,
  3.     youtubeId,
  4.     contador,
  5.     titulo,
  6.     descripcion,
  7.     nick
  8. FROM (SELECT vid.vid_clave vidId,
  9.          vid.vid_usu_clave usuId,
  10.          vid.vid_archivo youtubeId,
  11.          vid.vid_contador contador,
  12.          vid.vid_titulo titulo,
  13.          vid.vid_descripcion descripcion,
  14.          usu.usu_nick nick
  15.     FROM scx_videos vid
  16.          INNER JOIN scx_usuarios usu ON usu.usu_clave = vid.vid_usu_clave
  17.      WHERE usu_validado = 1
  18.     ORDER BY vid_contador DESC, vidId DESC) T1
  19. GROUP BY nick
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)