group by y distinct
Publicado por indio (1 intervención) el 11/01/2008 10:58:15
Muy buenas:
El título no es bueno, pero no se como resumir la duda ;)
El caso es el siguiente:
Necesito ordenar articulos según su puntuación, pero a su vez solo ha de tenerse en cuenta el mejor artículo de cada usuario, es decir un usuario no puede tener dos artículos entre los mejor valorados, partiendo de una simple consulta del tipo:
select sum Puntuacion.pun, Usuario.nick, Articulo.titulo FROM puntuacions as Puntuacion LEFT JOIN articulos as Articulo ON (Puntuacion.articulo_id=Articulo.id) LEFT JOIN usuarios as Usuario ON (Articulo.usuario_id=Usuario.id) GROUP BY articulo_id order by pun DESC limit 5;
Nos mostraría los 5 articulos con mas puntos, pero... como podría hacer para que fueran los 5 mejores artículos de distintos usuarios?
No se si se me habrá entendido XD.
Seguramente sea simple, pero estoy atascado, muchas gracias de antemano.
El título no es bueno, pero no se como resumir la duda ;)
El caso es el siguiente:
Necesito ordenar articulos según su puntuación, pero a su vez solo ha de tenerse en cuenta el mejor artículo de cada usuario, es decir un usuario no puede tener dos artículos entre los mejor valorados, partiendo de una simple consulta del tipo:
select sum Puntuacion.pun, Usuario.nick, Articulo.titulo FROM puntuacions as Puntuacion LEFT JOIN articulos as Articulo ON (Puntuacion.articulo_id=Articulo.id) LEFT JOIN usuarios as Usuario ON (Articulo.usuario_id=Usuario.id) GROUP BY articulo_id order by pun DESC limit 5;
Nos mostraría los 5 articulos con mas puntos, pero... como podría hacer para que fueran los 5 mejores artículos de distintos usuarios?
No se si se me habrá entendido XD.
Seguramente sea simple, pero estoy atascado, muchas gracias de antemano.
Valora esta pregunta


0