tres - mysql opuesto a la unión interna
union en sql server ejemplos (3)
Quiero contactar a mis usuarios por correo electrónico usando mi base de datos. Quiero asegurarme de no contactarme accidentalmente con el mismo usuario dos veces. Para eso, tengo una tabla que rastrea a quién fue contactado y cuándo.
Cuando hago mi consulta MYSQL quiero seleccionar correos electrónicos de la tabla de email
y asegurarme de que ninguna de esas entradas existe en la tabla contacted
.
Para expresarlo en una oración: seleccione el correo electrónico de Email_Table si no están en Contacted_Table
Tal vez hay un enfoque completamente diferente. Estoy abierto a todas las sugerencias:) Gracias :)
Prueba esto
SELECT email FROM email_table e
LEFT JOIN contacted_table c ON e.email = c.email
WHERE c.email IS NULL
Si intentas hacer una unión izquierda como esta:
SELECT users.email, contacted.email
FROM users LEFT JOIN contacted ON users.email = contacted.email
Obtendrás un resultado similar:
users.email | contacted.email
-----------------------------
[email protected] | [email protected]
[email protected] | [email protected]
[email protected] | [email protected]
[email protected] | NULL
[email protected] | NULL
Su objetivo es obtener aquellos registros que no tienen una coincidencia en la tabla contacted
, por lo que su consulta sería:
SELECT users.email
FROM users LEFT JOIN contacted ON users.email = contacted.email
WHERE contacted.email IS NULL
select email
from Email_Table t1
where not exists (select email
from Contacted_table t2
where t1.email = t2.email)
O
select email
from Email_Table t1
where email not in (select email
from Contacted_table)