Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/04/2011, 15:37
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, 1 mes
Puntos: 2658
Respuesta: query me devuelve un resultado en blanco

Bueno, aclaremos, LEFT JOIN es una forma de JOIN que le indica al DBMS que retorne todo lo que haya en la primera tabla (la de la izquierda del LEFT JOIN ), tenga o no coincidencias con la segunda (la de la derecha). En ese sentido, está cumpliendo bien su tarea: la tabla smf_notifications no tiene ninguna coincidencia con smf_members.
Lo que puede que no sepas, es que en el caso de LEFT JOIN el orden de los factores sí altera el producto, porque no es lo mismo la tabla derecha que la izquierda en este caso.
Si estás consultando por los usuarios, esa debe ser la tabla inicial. Si o sí, y todos los LEFT JOIN deben estar soportados por ella.
Si smf_members es la tabla de usuarios, hay que moverla de sitio:

Código MySQL:
Ver original
  1.     n.ID_NOTI,
  2.     n.ID_USER,
  3.     n.ID_MEMBER idmiembro,
  4.     n.ID_TOPIC,
  5.     n.`TYPE`,
  6.     n.`DATE`,
  7.     men.realName,
  8.     men.memberName,
  9.     mem.memberName,
  10.     m.ID_TOPIC
  11.     smf_members men
  12.     LEFT JOIN smf_notifications n ON men.ID_MEMBER = n.ID_USER
  13.     LEFT JOIN smf_messages m ON n.ID_TOPIC = m.ID_TOPIC
  14.     LEFT JOIN smf_members mem ON nID_MEMBER = mem.ID_MEMBER
  15.     LEFT JOIN smf_boards b ON m.ID_BOARD = b.ID_BOARD
Ten en cuenta además que si la tabla derecha devuelve NULL con algún usuario, toda tabla que esté enganchada con ella (por ejemplo, smf_messages) tampoco devolverá datos.

¿Se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)