Hola a todo el mundo,
Tengo una cláusula que me está volviendo loco, estoy intentando programar un foro pero no me salgo con esto, tengo dos tablas, una de temas y la otra de mensajes, lo que intento hacer es que me ordene por el última mensaje añadido y el último tema (como aquí vamos).
Funciona perfecto hasta que el tema tiene más de dos mensajes, entonces se muestra dos veces en el listado pero por más que pongo la cláusula DISTINCT no funciona, les pongo la consulta.
Código PHP:
Select DISTINCT t.titulo, u.usuario, t.idtema, t.visitas, " _
& "t.importante, t.bloqueado, m.fecha As mfecha, t.idusuario, " _
& "t.fecha As tfecha From foro_temas t Left Join foro_mensajes m On " _
& "(t.idtema=m.idtema) Left Join usuarios u On (m.idusuario=u.idusuario) Where " _
& "t.idforo=1 And importante=0 Group By t.titulo Order By m.idmensaje DESC, t.idtema DESC;
La estructura es la siguiente:
tabla temas
idtema -> Autoincrement
idofro -> BigInt
titulo -> varchar
contenido -> longtext
idusuario -> BigInt
importante -> Int
fecha -> DateTime
visitas -> BigInt
tabla mensajes
idmensaje -> Autoincrement
idtema -> BigInt
titulo -> varchar
contenido -> longtext
fecha -> DateTime
idusuario -> BigInt
Espero que entiendan la relación que quiero hacer, no sé como salirme para que tan solo me muestre un título aunque este tenga muchas respuestas.
Mi versión de MySQL es la 4.1
Salu2!