Хотя
SELECT u.UserMail
FROM Users u
WHERE EXISTS(SELECT 1 FROM Domains d WHERE u.UserEmail LIKE '%' + d.Domain)
даст то, что вы ищете, пожалуйста, поймите, что подобное дорого, и что вы могли бы побриться немного времени с (mysql диалект):
SELECT u.UserMail
FROM Users u
WHERE SUBSTRING_INDEX(u.UserMail, '@', -1) IN (SELECT d.Domain FROM Domains)
или даже
SELECT u.UserMail
FROM Users u
INNER JOIN Domains d ON SUBSTRING_INDEX(u.UserMail, '@', -1) = d.Domain
(и что вы можете разделить электронную почту на поля имени пользователя и домена, если это обычная операция в вашей базе данных)
РЕДАКТИРОВАТЬ: я пропустил тег сервера MS SQL. Для этого диалекта
substring(UserMail, charindex('@', UserMail) + 1, len(UserMail) - charindex('@', UserMail) )
должен превосходить LIKE (потому что он будет выполняться один раз для каждой строки в Users, и вы получите прямое соединение, где аналогичный подход должен быть выполнен для каждого значения в Users в каждой строке в Domains).
P.S. проверьте мои формулы для начала и длины в подстроке (это было вчера вечером в пятницу).