Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/06/2010, 07:48
DarkSlash
 
Fecha de Ingreso: noviembre-2006
Mensajes: 86
Antigüedad: 17 años, 5 meses
Puntos: 7
Group by y Order by no me devuelven lo que quiero

Tengo una tabla llamada "mensajes" con los campos: id, parent, thread, catid,name,userid,subject,time,ip y algunos más.

La cuestión es esta: Necesito mostrar los últimos 6 mensajes publicados en el foro. Esto sería fácil, pero lo que quiero es que, si hay un tema demasiado popular, no me aparezcan todas las respuestas, sino una sola. ¿Qué quiero decir? Que si los últimos 6 mensajes que se publicaron en el foro pertenecen al mismo tema (al mismo thread), que me muestre sólo la última respuesta, y después me muestre otros 5 mensajes distintos. Es decir, entre lo 6 últimos mensajes, no se puede duplicar el thread.

La sentencia mysql que uso para eso es:

Código:
select id,catid,name,userid,subject from mensajes group by thread order by id desc limit 6
Nota: Los campos requiero esos porque son los que necesito.

Sin embargo, parece que el "order by" ahí no funciona, porque en lugar de mostrarme la última respuesta de un thread, me muestra la primera. Intenté cambiar desc por asc y no funcionó, y camié id por time, y tampoco funcionó. También alteré el orden: puse primero el order by y después el group by y tira un error.

¿Qué estoy haciendo mlal? ¿Es que no funciona de esa forma el order by? ¿Qué soluciones proponen?


Cita:
EDIT: Según el manual oficial de mysql, los order by que se pongan después del group by serán ignorados

Última edición por DarkSlash; 09/06/2010 a las 08:00