получить недостающие данные из другой таблицы - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть две таблицы «Прием» и «EmailAddress».во время процесса приема, если кто-то подписался на «paperlessCommunication», система должна добавить свою электронную почту в таблицу EmailAddress.из-за некоторой ошибки кодирования некоторые из тех, кто подписался на «paperlessCommunication», имеют отсутствующий адрес электронной почты в таблице emailAddress.как я могу найти все записи, которые подписаны на безбумажное общение, но пропущены записи в адресе электронной почты ... Таблица адресов электронной почты PS также содержит адрес электронной почты от некоторых других процессов, мне просто интересен тот, который отсутствует в процессе приема сбезбумажный флаг, установленный как "Y".

select * from Admission a where a.paperlessCommunication = 'Y'

select * from EmailAddress

в обеих таблицах есть колонка personid.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Существует несколько решений

Решение № 1

select *
from Admission A
where paperlessCommunication = 'Y' 
and not exists (select 1 from EmailAddress ea where ea.emailaddress = A.emailaddress);

Решение № 2

select *
from Admission A
where paperlessCommunication = 'Y' 
and emailaddress not in (select emailaddress from EmailAddress where emailaddress is not null);

Решение № 3

select *
from Admission A
left join EmailAddress EA on Em.emailaddress  = A.emailaddress 
where paperlessCommunication = 'Y' 
and EA.emailaddress is null
0 голосов
/ 28 сентября 2018

Один метод - not exists:

select *
from Admission a
where a.paperlessCommunication = 'Y' and
      not exists (select 1 from EmailAddress ea where ea.emailaddress = a.emailaddress);

Предполагается, что адрес электронной почты указан в обеих таблицах.Если нет, то, конечно, есть какой-то другой идентификатор, который будет использоваться вместо него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...