我想使用我的数据库通过电子邮件与我的用户联系。我想确保我不会意外地联系同一个用户两次。为此,我有一张表来跟踪联系人和何时联系。
当我执行MYSQL查询时,我想从email
表中选择电子邮件,并确保contacted
表中不存在这些条目。
要在一个句子中对其进行短语:如果Email_Table中的电子邮件不在Contacted_Table中,请选择该电子邮件
也许有一种完全不同的方法。我对所有建议持开放态度:)谢谢:))
答案 0 :(得分:31)
试试这个
SELECT email FROM email_table e
LEFT JOIN contacted_table c ON e.email = c.email
WHERE c.email IS NULL
答案 1 :(得分:26)
select email
from Email_Table t1
where not exists (select email
from Contacted_table t2
where t1.email = t2.email)
或强>
select email
from Email_Table t1
where email not in (select email
from Contacted_table)
答案 2 :(得分:11)
如果您尝试像这样执行左连接:
SELECT users.email, contacted.email
FROM users LEFT JOIN contacted ON users.email = contacted.email
您将得到类似的结果:
users.email | contacted.email
-----------------------------
aa@aa.com | aa@aa.com
bb@bb.com | bb@bb.com
cc@cc.com | cc@cc.com
dd@dd.com | NULL
ee@ee.com | NULL
您的目标是获取contacted
表中没有匹配项的记录,因此您的查询将是:
SELECT users.email
FROM users LEFT JOIN contacted ON users.email = contacted.email
WHERE contacted.email IS NULL