Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/01/2013, 14:33
xuturk
 
Fecha de Ingreso: mayo-2011
Mensajes: 74
Antigüedad: 13 años, 6 meses
Puntos: 2
Exclamación Totalmente perdido con una consulta

Buenas noches.

Llevo toda la tarde detras de una consulta y tengo la cabeza chamuscada ya, asi que voy a molestaros un poco a ver si podeis ayudarme.

Tengo una tabla con un usuario:

usuario_web(id_user,pass,mail,nombre)

Otra con mensajes privados:

user_private_message(id_user,Id_mp,visto

y otra con mensajes de perfil

mensaje_perfil(Id_mensaje,user_destino,texto,fecha,visto)

Lo que quiero basicamente, (ademas de hacerlo tambien para mas tablas pero con conseguirlo para estas creo que seria capaz de seguir con ello) sacar de varias tablas valores.

En este caso, me gustaria sacar el email y el nombre del usuario_web, el numero de los mensajes privados que esten asociados a el (id_user='nombreusuario' y ademas no esten vistos visto=0 y lo mismo para los mensajes de perfil sacar la cantidad de ellos asociados al usuario y no vistos

El problema me viene por que una vez que por ejemplo esta consulta:

Código MySQL:
Ver original
  1. SELECT UW.ID_FACEBOOK,UW.EXPERIENCIA,UW.AVATAR,UW.JUGANDO,UW.IDIOMA_PREFERIDO,
  2. COUNT(MSG.ID_MENSAJE) AS NUM_MENSAJES,
  3. COUNT(MP.ID_MP) AS NUM_MP
  4. FROM USUARIO_WEB UW LEFT JOIN MENSAJE_PERFIL MSG ON UW.ID_USER=MSG.USER_DESTINO LEFT JOIN USER_PRIVATE_MESSAGE MP ON UW.ID_USER=MP.ID_USER
  5. WHERE UW.ID_USER='XUTURK'  AND MSG.VISTO='0' AND MP.VISTO='1'
Y si es MP='1' me saca en NUM_MP y NUM_MENSAJES 1, esto esta bien, pero si pongo MP='0' me saca bien que NUM_MP es 0 pero me pone a 0 el MSG, creo que esto tiene su logica en el join que esta mal hecho, creo que deberia utilizar varias consultas, pero no se me ocurre como hacerlo para que todo esto me quede en una unica devolucion de datos.

Agradeceria mucho vuestra ayuda.

Un saludo.

Última edición por gnzsoloyo; 31/01/2013 a las 05:10 Razón: SQL mal etiquetado