Мне нужно извлечь список адресов электронной почты из базы данных. Эти адреса электронной почты сопоставляются с идентификаторами systemID через соединение, однако адрес электронной почты (в таблице A) может соответствовать 1+ именам пользователей (в таблице B) ...
2 ответа
Вот ошибка:
WHERE Email2 NOT IN (List_NOTNULL_systemid.email1)
Тот факт, что вы используете псевдоним List_NOTNULL_systemid
, который был определен с CTE, не означает, что вы можете ссылаться на него напрямую. Вы все равно должны включить его в предложение FROM
:
With......
SELECT *
FROM List_NULL_systemid
WHERE Email2 NOT IN (select email1 from List_NOTNULL_systemid)
Вот один простой способ:
SELECT
h.email AS Email2
, h.[Employee First Name]
, h.[Employee Last Name]
, a.fullusername
, h.[Op Company Desc]
FROM
HR_CONTRACTORS_COMBINED AS h
JOIN AD_EMAIL_USERNAME_LINK AS a
ON h.Email = a.mail
WHERE
NOT EXISTS
(
SELECT
1
FROM
RPT_USER_INFO AS r
WHERE
a.fullusername = r.fullusername
AND r.SystemId IS NOT NULL
);
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.