Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema registros repetidos, GROUP BY y DISTINCT

Estas en el tema de Problema registros repetidos, GROUP BY y DISTINCT en el foro de Mysql en Foros del Web. Buenas. Les comento, tengo una sección en mi sitio web donde necesito sacar los últimos juegos que se están jugando, y mostrar la cantidad de ...
  #1 (permalink)  
Antiguo 06/10/2011, 19:39
Avatar de minkweb  
Fecha de Ingreso: septiembre-2005
Mensajes: 443
Antigüedad: 19 años, 2 meses
Puntos: 14
Problema registros repetidos, GROUP BY y DISTINCT

Buenas.

Les comento, tengo una sección en mi sitio web donde necesito sacar los últimos juegos que se están jugando, y mostrar la cantidad de jugadas en los últimos 10 minutos.

Le digo, seleccióname ordenados por fecha descendiente los últimos 5 juegos que han jugado, le agrego un GROUP BY id para que se agrupen evitando así mostrar 2 veces el mismo juego.

El problema es que creo solo me arroja los registros que no están repetidos, los últimos juegos jugados no aparecen...

Intente con DISTINCT también y no funciona, si no coloco ningún tipo de agrupamiento ¡EFECTIVAMENTE SALEN LOS ULTIMOS JUGADOS!, pero si existen duplicados los mostrará.

¿Alguien sabe que pasa acá?

Me ocurre lo mismo que a este usuario (que nadie le pudo ayudar a resolver el problema), ella tiene ejemplos mejor explicados
http://www.forosdelweb.com/f86/probl...stinct-340113/

Adjunto la consulta.
Código SQL:
Ver original
  1. SELECT
  2. `categoria_juego`.`titulo` AS `catNombre`,
  3. `categoria_juego`.`rewrite` AS `catRewrite`,
  4. `juego`.`id`,
  5. `juego`.`rewrite`,
  6. `juego`.`nombre`,
  7. `juego`.`imgMediana`
  8. FROM `juego`
  9. JOIN `juego_categoria` AS `juego_categoria` ON `juego`.`id`=`juego_categoria`.`idJuego`
  10. JOIN `categoria_juego` AS `categoria_juego` ON `juego_categoria`.`idCategoria`=`categoria_juego`.`id`
  11. JOIN `temporal` AS `temporal` ON `juego`.`id`=`temporal`.`idJuego`
  12. WHERE `juego_categoria`.`principal`=1
  13. AND `juego`.`visible`=1
  14. AND `temporal`.`idTipo`=1
  15. GROUP BY `juego`.`id`
  16. ORDER BY `temporal`.`fecha`
  17. DESC LIMIT 5


Y esta que es mas corta, pero ocurre igual
Código SQL:
Ver original
  1. SELECT * FROM `temporal` GROUP BY `idJuego` ORDER BY `temporal`.`fecha` DESC LIMIT 5

Usando el GROUPBY el primer id que arroja es 455304 y sin el GROUP es 455310

Gracias
__________________
Juegos
Juegos iphone

Última edición por minkweb; 06/10/2011 a las 23:22
  #2 (permalink)  
Antiguo 07/10/2011, 07:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Problema registros repetidos, GROUP BY y DISTINCT

Creo que con esto muestras los 5 juegos jugados en último lugar. Prueba y dinos.

SELECT t1.idJuego, t1.fecha FROM (SELECT idJuego, fecha FROM `temporal` ORDER BY `temporal`.`fecha` DESC, temporal.idJuego)t1 GROUP BY t1.idJuego LIMIT 5
  #3 (permalink)  
Antiguo 08/10/2011, 15:31
Avatar de minkweb  
Fecha de Ingreso: septiembre-2005
Mensajes: 443
Antigüedad: 19 años, 2 meses
Puntos: 14
Respuesta: Problema registros repetidos, GROUP BY y DISTINCT

Ya lo logre, un amigo me ayudo

Código SQL:
Ver original
  1. SELECT
  2.     `categoria_juego`.`titulo` AS `catNombre`,
  3.     `categoria_juego`.`rewrite` AS `catRewrite`,
  4.     `juego`.`id`,
  5.     `juego`.`rewrite`,
  6.     `juego`.`nombre`,
  7.     `juego`.`imgMediana`
  8.     FROM `juego`
  9.     JOIN `juego_categoria` AS `juego_categoria` ON `juego`.`id`=`juego_categoria`.`idJuego`
  10.     JOIN `categoria_juego` AS `categoria_juego` ON `juego_categoria`.`idCategoria`=`categoria_juego`.`id`
  11.     JOIN `temporal` AS `temporal` ON `juego`.`id`=`temporal`.`idJuego`
  12.     WHERE `juego_categoria`.`principal`=1
  13.     AND `juego`.`visible`=1
  14.     AND `temporal`.`idTipo`=1
  15.     GROUP BY `juego`.`id`
  16.     ORDER BY MAX(`temporal`.`fecha`)
  17.     DESC LIMIT 5

es el orden de la fecha lo que cambie, no entendi bien la razon, pero ahora funciona bien
__________________
Juegos
Juegos iphone

Etiquetas: distinct, group, registros, repetidos, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:45.