Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/12/2007, 05:33
Avatar de pempas
pempas
 
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 4 meses
Puntos: 6
Consulta muy compleja

Buenos días,

Tengo una consulta que me está matando, expongo:

Cita:
Select t.titulo, t.fecha, t.lecturas, u.usuario, t.url, t.ultrespuesta, t.bloqueado, t.importante, Count(m.idmensaje) As Msg, l.idusuario From (((foro_temas t Inner Join usuarios u ON t.idusuario=u.idusuario) Left Join foro_mensajes m ON t.idtema=m.idtema) Left Join foro_lecturas l ON t.idtema=l.idtema And l.idusuario=3) Where t.importante='No' And t.idforo=2 Group By t.idtema Order By t.importante DESC, t.ultrespuesta DESC;
Explico como va, tengo estas tablas:

Código PHP:
Tabla foro_temas:
titulo --> char
fecha 
--> datetime
lecturas 
--> int
url 
--> char
ultrespuesta 
--> datetime
bloqueado e importante 
--> enum 
Código PHP:
Tabla foro_mensajes (Se almacenan las respuestas a los temas):
idmensaje --> int
titulo 
--> char
contenido 
--> text 
Código PHP:
Tabla usuarios:
usuario --> char 
Código PHP:
Tabla foro_lecturas (sirve para saber los mensajes que cada usuario ha leído):
idusuario --> int
idtema 
--> int 
Lo que quiero es sacar en una misma consulta:
  1. El número de respuestas que ha tenido cada tema.
  2. Si el usuario actual no ha leído el tema, (l.idusuario) tiene que ser Null, creo que eso lo hace bien.
Lo que pasa es que no me da correctamente el número de respuestas, cada vez que entro al mensaje me salen más respuestas...
¿Qué está mal en la consulta?

Muchas gracias!