Ver Mensaje Individual
  #1  
Antiguo 19-01-2014
n03l n03l is offline
Miembro
 
Registrado: feb 2007
Posts: 73
Reputación: 18
n03l Va por buen camino
Ayuda con LEFT JOIN

Saludos, haber si alguien me hecha una ayudita en una consulta SQL.

El asunto es el siguiente: Tengo 3 tablas

Código SQL [-]
CREATE TABLE USUARIOS (
    USUARIO  VARCHAR(25) NOT NULL
);

/*Datos de la tabla anterior */
USUARIO
USUARIO1
USUARIO2

/*Esta tabla guarda los correos que el usuario a enviado */
CREATE TABLE CORREOS (
    DESTINATARIO  VARCHAR(200),
    MENSAJE       VARCHAR(200),
    USUARIO       VARCHAR(25),
    COD           INTEGER NOT NULL
);

/*Datos de la tabla anterior */
DESTINATARIO  MENSAJE  USUARIO  COD
JUAN@gmail.com  Hola Juan  USUARIO1  1
PEDRO@gmail.com  Hola Pedro  USUARIO2  2
DESCONOCIDO@gmail.com  Hola desconocido tu no perteneces a mi lista de contactos  USUARIO1  3



CREATE TABLE CONTACTOS (
    NOMBRE   VARCHAR(30),
    CORREO   VARCHAR(200),
    USUARIO  VARCHAR(25)
);

/*Datos de la tabla anterior */
NOMBRE   CORREO          USUARIO
JUAN  JUAN@gmail.com  USUARIO1
PEDRO  PEDRO@gmail.com  USUARIO2
JUAN  JUAN@gmail.com  USUARIO2


la consulta q hago

Código SQL [-]
select contactos.nombre ,  correos.destinatario ,correos.usuario , correos.mensaje
from correos

LEFT JOIN usuarios ON correos.usuario =usuarios.usuario

LEFT OUTER JOIN contactos ON contactos.correo =correos.destinatario

Where usuarios.usuario='USUARIO1'

y el resultado es el siguiente:
Código SQL [-]
NOMBRE  DESTINATARIO  USUARIO  MENSAJE
JUAN  JUAN@gmail.com  USUARIO1  Hola Juan
JUAN  JUAN@gmail.com  USUARIO1  Hola Juan
  DESCONOCIDO@gmail.com  USUARIO1  Hola desconocido tu no perteneces a mi lista de contactos



USUARIO1 le envio a JUAN, pero como juan tambien pertenece a los contactos de USUARIO2 me lo repite!!!!

Última edición por n03l fecha: 19-01-2014 a las 19:40:26.
Responder Con Cita