Ver Mensaje Individual
  #8 (permalink)  
Antiguo 25/06/2012, 04:25
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Mysql: agrupar registros y obtener el mayor valor de cada uno

Vistas las consultas que pides insisto en que te falta una tabla juegos, para poder diferenciar las partidas.

Estadísticas

Código MySQL:
Ver original
  1. FROM ((usuarios u INNER JOIN puntuaciones p ON u.idUsuario=p.idUsuario)
  2.                              INNER JOIN partidas pr ON p.idPartida=pr.idPartida)
  3.                              INNER JOIN juegos j ON j.idJuego=pr.idJuego
  4. WHERE u.idUsuario=X
  5. ORDER BY pr.fecha DESC
  6. LIMIT 20;

Ultimas 20 partidas del usuario X, substiuye el * por la lista de campos que te interese.

Código MySQL:
Ver original
  1. SELECT p.idPartida
  2. FROM puntuaciones p INNER JOIN partidas pr ON p.idPartida=pr.idPartida
  3. WHERE p.idUsuario=X;

Id de las partidas de X

Con la primera query y la segunda

Código MySQL:
Ver original
  1. FROM ((usuarios u INNER JOIN puntuaciones p ON u.idUsuario=p.idUsuario)
  2.                              INNER JOIN partidas pr ON p.idPartida=pr.idPartida)
  3.                              INNER JOIN juegos j ON j.idJuego=pr.idJuego
  4. WHERE pr.idPartida IN (SELECT p.idPartida
  5.                                      FROM puntuaciones p2
  6.                                          INNER JOIN partidas pr2
  7.                                            ON p2.idPartida=pr2.idPartida
  8.                                WHERE p2.idUsuario=X)
  9. ORDER BY pr.fecha DESC,p.puntuacion DESC;

Todos los datos de las partidas de X, con los jugadores ordenados por puntuación.

Top

Código MySQL:
Ver original
  1. SELECT j.nombre,MAX(p.puntuacion) as Record
  2. FROM (puntuaciones p INNER JOIN partidas pr ON p.idPartida=pr.idPartida)
  3.                              INNER JOIN juegos j ON j.idJuego=pr.idJuego
  4. GROUP BY j.nombre;

Ahí tienes los datos en bruto, solo te faltan los autores de esos records pero ya tienes ejemplos .... a partir de aqui trabaja las salidas....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.