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

Consulta MySQL para foro

Estas en el tema de Consulta MySQL para foro en el foro de Bases de Datos General en Foros del Web. Buenas Estoy haciendo un foro en PHP y tengo la siguiente consulta para recuperar la lista de temas que anda perfecto. SELECT topics.id_topic, topics.topic, topics.usuario, ...
  #1 (permalink)  
Antiguo 25/03/2005, 07:50
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Consulta MySQL para foro

Buenas

Estoy haciendo un foro en PHP y tengo la siguiente consulta para recuperar la lista de temas que anda perfecto.

SELECT topics.id_topic, topics.topic, topics.usuario, topics.estado, count(*) as cant_post
FROM topics
LEFT JOIN reply ON topics.id_topic = reply.id_topic
WHERE id_foro = ".$foros[$a]."
GROUP BY topics.id_topic, topics.topic, topics.usuario, topics.estado
ORDER BY topics.estado DESC

Lo que quiero es que me lo ordene por reply.fecha del ultimo reply de cada topic...
O sea, que cuando se responda un mensaje quede primero...

Espero ser claro
  #2 (permalink)  
Antiguo 25/03/2005, 08:07
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
bue, tengo una posible solución, pero me parece realmente horrible...

SELECT topics.id_topic, topics.topic, topics.usuario, topics.estado, sqrt(count(*)) as cant_post, max(to_days(r.fecha) + date_format(r.fecha,'%h')/24 + date_format(r.fecha,'%i')/(24*60) + date_format(r.fecha,'%s')/(24*60*60)) as maxfecha
FROM topics
LEFT JOIN reply ON topics.id_topic = reply.id_topic
LEFT JOIN reply r ON topics.id_topic = r.id_topic
WHERE id_foro = ".$foros[$a]."
GROUP BY topics.id_topic, topics.topic, topics.usuario, topics.estado
ORDER BY topics.estado DESC, maxfecha DESC, id_topic DESC
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 19:55.