我打算创建一个名为donotemail的表,其中包含要求从我们的电子邮件列表中删除的人的电子邮件地址。我有一个名为users的表,其中包含一个电子邮件列。如何选择来自用户的所有电子邮件,但前提是电子邮件地址不在donotemail表中?
谢谢!
答案 0 :(得分:15)
尝试
SELECT Email.address
FROM Email LEFT OUTER JOIN DoNotMail on Email.address = DoNotMail.address
WHERE DoNotMail.address is null
它避免了需要子查询。
答案 1 :(得分:3)
select u.email from users u where u.email not in (select email from donotemail)
OR
从u.email!= d.email
编辑:加入不起作用
答案 2 :(得分:2)
试试这个:
SELECT email
FROM users u
WHERE NOT EXISTS(
SELECT 1 FROM no_mail_users nmu
WHERE nmu.id = u.id
)
答案 3 :(得分:1)
为什么不在电子邮件表中添加另一列,标记为“活动”,当设置为1时,当前正在通过电子邮件发送,当设置为0时,它不再是电子邮件,那么您可以根据该交换机选择和过滤?
干杯
答案 4 :(得分:0)
select email from users where email not in (select email from donotemail)