Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Прошу помочь с задачкой sql

Александр Мехов Профи (691), на голосовании 8 месяцев назад
Есть 3 таблицы. Аккаунты, Почты, Сотрудники. У Сотрудников может быть несколько почт и один аккаунт. Надо вычленить тех сотрудников, у которых почта не совпадает с аккаунтом.
Но Важно! Тех сотрудников, у которых несколько почт,и при этом хоть одна совпадает с аккаунтом, то их вообще не показывать в выборке. Сджойнить таблички можно по общему Id.
Спасибо!
Голосование за лучший ответ
Анонимус Мудрец (14718) 9 месяцев назад
 SELECT s.*  
FROM Сотрудники s
JOIN Почты p ON s.Id = p.Id
JOIN Аккаунты a ON s.Id = a.Id
WHERE p.Почта <> a.Почта
AND s.Id NOT IN (
SELECT Id
FROM Почты
GROUP BY Id
HAVING COUNT(*) > 1
AND COUNT(CASE WHEN Почта = a.Почта THEN 1 END) > 0
)
Похожие вопросы