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

Ordenar y agrupar a la vez

Estas en el tema de Ordenar y agrupar a la vez en el foro de Mysql en Foros del Web. Hola a todos. Tengo dos tablas: posts y comentarios, donde cada comentario tiene el id del post correspondiente: post { id } comentarios { post_id ...
  #1 (permalink)  
Antiguo 25/05/2007, 00:27
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 20 años, 3 meses
Puntos: 1
Ordenar y agrupar a la vez

Hola a todos.

Tengo dos tablas: posts y comentarios, donde cada comentario tiene el id del post correspondiente:

post {
id
}
comentarios {
post_id
fecha
}

entre otras muchas cosas que no interesan. Lo que quiero es obtener los últimos 10 comentarios, pero agrupar su listado por post. Es decir, algo así:

post A
comentario 12
comentario 8
post B
comentario 11
post C
comentario 10

No tengo idea de cómo narices hacerlo. Si ordeno primero por post_id ya pierdo el orden de los comentarios y no puedo obtener los últimos. Si ordeno por la fecha del comentario ya no puedo ordenar por post_id.
¿Alguien sabe cómo hacerlo en una sola consulta?

Gracias!
__________________
Mi página personal: Julián Urbano
  #2 (permalink)  
Antiguo 25/05/2007, 04:45
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 19 años, 2 meses
Puntos: 19
Re: Ordenar y agrupar a la vez

Prueba con esto
Código:
SELECT *
FROM comentarios
ORDER BY post_id, fecha DESC
LIMIT 10
Un saludo
  #3 (permalink)  
Antiguo 25/05/2007, 08:52
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 20 años, 3 meses
Puntos: 1
Re: Ordenar y agrupar a la vez

jerkan, como decía esto no vale. Si ordeno primero por post_id ya no estoy obteniendo los últimos comentarios. Esto ordenaría por post, y después, dentro de cada post, por la fecha de sus comentarios. Como ves, no me da los últimos comentarios del total.
Al final lo he ordenador por fecha y he programado yo a pelo el resto. En cualquier caso, me gustaría saber si es posible hacer esto...
__________________
Mi página personal: Julián Urbano
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 22:17.