sql - 两个表的联合并比较第三个表的重复项?
问题描述
我有 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 中的电子邮件地址进行比较,以查看这些表中是否只有一条记录但是两者都没有。
解决方案
您需要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
任何其他表中不存在的行。
推荐阅读
- node.js - 读取 csv 时返回非 utf-8 响应
- amazon-web-services - AWS Elasticsearch vpc 端点和私有 vpc 域
- python - 如何重塑未对齐的数据集并用 numpy 丢弃剩余数据?
- javascript - 正则表达式匹配 Javascript 中的版本号
- python - 如何使用 Jinja2 单独访问字典列表中的每个字典?
- substrate - Parity Substrate - 区块尚未最终确定
- html - 是否可以使用 Bootstrap 4 将 div 折叠到左侧,而不是 div 折叠到顶部?(动画)
- vue.js - 未捕获的 ReferenceError:显示表格时未定义 Vue
- python - BeautifulSoup4 如何检查标签是否有特定的子标签
- java - 来自 Java 错误 NoHostAvailableException 的 Datastax Cassandra SSL 连接