首页 > 解决方案 > 两个表的联合并比较第三个表的重复项?

问题描述

我有 3 个表都由一个电子邮件地址连接。

我想要做的是在 2 个表上进行联合,并找到一个存在但不是两者都存在的重复项。

Select *
From tbl3 t3
LEFT JOIN (
Select emailaddress From tbl1 t1
UNION
Select emailadress FROM tbl2 t2    
) as customer 
ON t3.emailadress = customer.emailaddress

我是否可以找出 tbl1 或 tbl2 中是否有重复记录但两者都没有?

谢谢

编辑:对不起,我没有说得很好,我正在尝试从表 3 中获取电子邮件地址,并将其与表 1 和表 2 中的电子邮件地址进行比较,以查看这些表中是否只有一条记录但是两者都没有。

标签: sqlsql-server

解决方案


您需要tbl3使用左连接加入其他 2 个表:

SELECT t3.emailadress email3, t1.emailadress email1, t2.emailadress email2
FROM tbl3 t3
LEFT JOIN tbl1 t1 ON t3.emailadress = t1.emailaddress
LEFT JOIN tbl2 t2 ON t3.emailadress = t2.emailaddress

您还可以添加where如下子句:

WHERE t1.emailaddress is not null or t2.emailaddress is not null

过滤掉tbl3任何其他表中不存在的行。


推荐阅读