SQL合并两个表,然后根据第三个列表删除条目

时间:2011-07-01 20:39:43

标签: sql ms-access

我们需要合并两个邮件列表,然后

  1. 确保没有重复项 和
  2. 与第三个列表(取消订阅列表)进行比较,并删除该列表中的所有名称。
  3. 我试过

    SELECT DISTINCT * 
      FROM [table1.EmailAddress FROM table1 union all 
            SELECT table2.Emailaddress FROM table2]. AS [email]; 
    

    适用于第一个问题。然后我尝试添加

    where not exist (select table3.emailaddress from table3) 
    

    到那个选择查询,无济于事...
    我们正在使用access 2000(不,我们不会升级);
    所有表都有其他字段,其中没有一个与其他表匹配 即使是emailaddress字段也有不匹配的情况......

2 个答案:

答案 0 :(得分:3)

select distinct email
from (
    select Email
    from Table1
    union all
    select Email
    from Table2
)x
where not exists(
    select * from table3 t3 where t3.Email=x.Email
)

如果您的案例敏感数据库只有LOWER()所有电子邮件列。

答案 1 :(得分:0)

Access 2000是否支持减运算符?

SELECT DISTINCT * FROM [[table1.EmailAddress FROM table1 union all SELECT table2.Emailaddress FROM table2]. AS [email] MINUS SELECT table3.EmailAddress FROM table3]