Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/06/2012, 04:14
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses
Puntos: 2658
Respuesta: Ordenar dos tablas por campos de fecha

El problema está en el uso del GROUP BY con ORDER BY.
Como GROUP BY opera antes que ORDER BY, primero realiza el agrupamiento, dejando el primer registro que encuentre de cada grupo, por lo que posiblemente no logres el conjunto de registros que buscas.
Eso se soluciona habitualmente por medio de una subconsulta, y dejando el GROUP BY en la externa
Código MySQL:
Ver original
  1. SELECT ....
  2. FROM (SELECT ... FROM ... ORDER BY ...) TablaDerivada
En este tipo de consultas la consulta interna es la que selecciona los datos conforme las condiciones que se desean. La externa sirve sólo para agrupar y darle el orden definitivo.
Ahora bien, si de cada grupo quieres el valor mayor de la fecha, lo más simple es usar MAX():
Código MySQL:
Ver original
  1.     p.id,
  2.     p.titulo,
  3.     p.autor,
  4.     p.cuerpo,
  5.     p.categoria,
  6.     MAX(p.fecha) fecha,
  7.     MAX(c.fecha_c) fecha_C
  8.     posts p
  9.     LEFT JOIN comentarios c ON c.id_post=p.id
  10. ORDER BY p.fecha desc,c.fecha_c desc

Lo que me resulta muy extraño es que un FW no acepte el UNION. Eso es MUY raro, porque es parte del estandar.
¿Verificaste en el manual de referencia del FW?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)