MySQL - Como comparar campos de tres tablas distintas

 
Vista:
Imágen de perfil de Yoel
Val: 17
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

Como comparar campos de tres tablas distintas

Publicado por Yoel (13 intervenciones) el 27/09/2019 23:45:09
Tengo la siguiente situación: Estoy haciendo una comparación en tres las tablas,en dos ellas hay campos vacíos (college, contact_person), los cuales necesito excluir de la comparación y que solo me de las diferencia de los que no coincidan y no sean vacíos.

El problema que tengo, es que si coloco la condición de quitar los que sean vacíos en la columna de correo me quita los del teléfono que son distintos y si quito los vació de la columna de teléfono de cualquiera de las tablas (college, contact_person) me sucede que me quita los de correo que son distintos.

El resultado que necesito, es que me de los datos que sean distintos tanto en correo como en teléfono y que no sean vacíos. A continuación le dejo mi consulta a ver si me pueden ayudar.

Gracias.

Consulta completa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT college.CollegeID,
       college.SEPEconomicKey,
       college.Namecol,
       contact_person.Email,
       datosdriver.correo,
       college.Telephone1,
       datosdriver.telefono,
       nivel,
       NameLev
FROM college
INNER JOIN contact_person ON college.CollegeID = contact_person.CollegeID
INNER JOIN datosdriver ON college.SEPEconomicKey = datosdriver.clave
INNER JOIN level ON level.levelID = college.SEPLavel
WHERE 1 AND datosdriver.correo <> (contact_person.Email OR contact_person.Emal2)
AND datosdriver.telefono <> (college.Telephone1 OR college.Telephone2)
AND (contact_person.Emal2 <> '' OR college.Telephone2 <> '' )
ORDER BY SEPEconomicKey ASC
Condición que coloco para las diferencias:
1
2
3
WHERE 1
AND datosdriver.correo <> (contact_person.Email OR contact_person.Emal2)
AND datosdriver.telefono <> (college.Telephone1 OR college.Telephone2)

Condición para quitar los vacíos
1
AND (contact_person.Emal2 <> '' OR college.Telephone2 <> '' )

Le coloco un ejemplo de lo que me devuelve y lo que necesito:

Este registro, muestra el segundo teléfono vació pero el primero esta correcto y el correo es distinto, me tiene que mantener el registro y eso no me esta sucediendo porque al estar el segundo teléfono vació me quita el registro.

Teléfono 1 de BD: 555XXXXXXX

Teléfono 2 de BD:

Teléfono Contacto:

Teléfono de Drive: 555XXXXXX

Correo 1 de BD: [email protected]

Correo de Drive: [email protected]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder