首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另一个表中获取丢失的数据

从另一个表中获取丢失的数据
EN

Stack Overflow用户
提问于 2018-09-28 17:40:07
回答 2查看 38关注 0票数 1

我有两张桌子“入场”和"EmailAddress“。在录取过程中,如果有人注册了"paperlessCommunication",系统应该将他们的电子邮件添加到EmailAddress表中。由于一些编码错误,一些报名参加"paperlessCommunication“的人在emailAddress表中丢失了电子邮件地址。我如何才能找到所有的记录,谁是注册无纸化沟通,但丢失的记录,在电子邮件地址.电子邮件地址表有来自其他一些进程的电子邮件地址,我只是感兴趣的是一个是在入学过程中丢失的无纸化标志设置为"Y“。

代码语言:javascript
复制
select * from Admission a where a.paperlessCommunication = 'Y'

select * from EmailAddress

这两个表都有personid列。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-28 18:06:42

有几种解决方案

解决方案1

代码语言:javascript
复制
select *
from Admission A
where paperlessCommunication = 'Y' 
and not exists (select 1 from EmailAddress ea where ea.emailaddress = A.emailaddress);

解决方案2

代码语言:javascript
复制
select *
from Admission A
where paperlessCommunication = 'Y' 
and emailaddress not in (select emailaddress from EmailAddress where emailaddress is not null);

解决方案3

代码语言:javascript
复制
select *
from Admission A
left join EmailAddress EA on Em.emailaddress  = A.emailaddress 
where paperlessCommunication = 'Y' 
and EA.emailaddress is null
票数 1
EN

Stack Overflow用户

发布于 2018-09-28 17:41:51

一种方法是not exists

代码语言:javascript
复制
select *
from Admission a
where a.paperlessCommunication = 'Y' and
      not exists (select 1 from EmailAddress ea where ea.emailaddress = a.emailaddress);

这假设电子邮件地址在两个表中。如果不是,其他一些id肯定会被使用,而这将被使用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52560325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档