У меня есть две таблицы в базе данных.Contacts
и Filter
В Contacts
у меня есть ID
, Name
и Email
в качестве полей.
в Filter
, у меня есть ID
и code
Моя цель - иметь возможность запрашивать всю таблицу и экспортировать список, который был отфильтрован по элементам в таблице фильтра.(в основном то же самое, что может быть достигнуто с помощью grep -i -Ev) ... В основном я хочу отфильтровать gmail, Yahoo или другие).
Так что, если я сделаю
select distinct email from contacts where email not like '%gmail%'
Один уровень фильтра работает.но если я это сделаю,
select distinct email from contacts where email not like '%gmail%' or not like '%yahoo%'
, тогда все пойдет не так.
Прежде чем я начну интегрировать вложенный код выбора в фильтр, я не могу получить поле множественного числа, где не похоже на X, или поле field1, не похожее на Y, работает.
Любые входные данные приветствуются.
выборка данных
name email
bob bob@gmail.com
joey joey@cisco.com
желаемый вывод
joey@cisco.com
ОБНОВЛЕНИЕ: Спасибо всем за помощь.Ответом на первый этап вопроса было изменение с ИЛИ на И.:)
Этап II: вместо того, чтобы иметь запрос, который становится все больше и больше, я бы предпочел использовать запрос для определения исключаемых элементов (то есть, если какой-либо из них совпадает, то исключить их) .. такЗатем я добавил бы yahoo gmail protonmail к записям в поле кода таблицы фильтров ... при этом это будет
select distinct email from contacts where email not like in (select code from filters)
Это не удастся, так как он говорит, что выбор имеет несколько записей
ОБНОВЛЕНИЕ:
SELECT DISTINCT email FROM Contacts WHERE email NOT LIKE (select filters.code from filters where filters.id=4)
работает .. но использует только одну запись в качестве фильтра.не все из них как фильтры.