AYUDA CON DISTINCT
Publicado por Oscar (1 intervención) el 11/06/2010 00:05:38
Buena tarde para todos.
Bueno tengo dos tablas en MySQL, una se llama juego y otra se llama usuario, lo que quiero es tirar una consulta SQL que me muestre los 5 usuarios con el mejor puntaje, pero que si un usuario tiene registrados varios puntajes, solo me muestre el mejor osea el más alto.
Aqui mi consulta:
tabla usuario
id_usuario | nombre
---------------+--------------
1 | Carlos
2 | Mario
3 | Martha
4 | Pedro
5 | Luis
Tabla juego
id_juego | id_usuario | puntaje
------------+----------------+------------
1 3 100
2 5 90
3 5 30
4 5 40
5 1 120
6 3 20
7 4 50
8 1 80
9 4 60
10 2 10
Bueno ahora my sql:
SELECT DISTINCT (a.id_usuario), b.nombre, a.puntaje
FROM puntaje a, usuario b
WHERE a.id_usuario = b.id_usuario
ORDER BY puntaje DESC LIMIT 5
Se supone que el anterior query debe traerme los 5 mejores puntajes de la tabla juego, pero sin repetir el usuario, pero no me funciona :(
El resultado ideal seria:
id_usuario | nombre | puntaje
---------------+-----------+------------
1 carlos 120
3 Martha 100
5 Luis 90
4 Pedro 60
2 Mario 10
Como ven, en el resultado no se debe repetir los putanjes de Carlos (80) ni el (50) de Pedro puesto que ya salieron con un puntaje mejor.
Agradesco de antemano cualquier ayuda que me puedan brindar.
Bueno tengo dos tablas en MySQL, una se llama juego y otra se llama usuario, lo que quiero es tirar una consulta SQL que me muestre los 5 usuarios con el mejor puntaje, pero que si un usuario tiene registrados varios puntajes, solo me muestre el mejor osea el más alto.
Aqui mi consulta:
tabla usuario
id_usuario | nombre
---------------+--------------
1 | Carlos
2 | Mario
3 | Martha
4 | Pedro
5 | Luis
Tabla juego
id_juego | id_usuario | puntaje
------------+----------------+------------
1 3 100
2 5 90
3 5 30
4 5 40
5 1 120
6 3 20
7 4 50
8 1 80
9 4 60
10 2 10
Bueno ahora my sql:
SELECT DISTINCT (a.id_usuario), b.nombre, a.puntaje
FROM puntaje a, usuario b
WHERE a.id_usuario = b.id_usuario
ORDER BY puntaje DESC LIMIT 5
Se supone que el anterior query debe traerme los 5 mejores puntajes de la tabla juego, pero sin repetir el usuario, pero no me funciona :(
El resultado ideal seria:
id_usuario | nombre | puntaje
---------------+-----------+------------
1 carlos 120
3 Martha 100
5 Luis 90
4 Pedro 60
2 Mario 10
Como ven, en el resultado no se debe repetir los putanjes de Carlos (80) ni el (50) de Pedro puesto que ya salieron con un puntaje mejor.
Agradesco de antemano cualquier ayuda que me puedan brindar.
Valora esta pregunta


0