Проблема с НЕ НРАВИТСЯ

У меня есть следующая таблица:

ItemID
BrandID

со следующими данными (я фактически присоединяюсь к другой таблице, чтобы получить текст бренда, но для краткости я поместил их в ту же таблицу здесь

ItemID      Brand
   1        Test
   1        Test2
   1        stuff
   2        test
   3        guy
   4        girl
   5        rest

Я выполняю поиск по запросу "es" следующим образом:

SELECT DISTINCT(ItemID) FROM Items WHERE Brand LIKE '%es%' 

который возвращает Items (1, 2, 5).

Теперь я хочу сделать не содержит, который должен возвращать Items (3, 4), однако запрос

SELECT DISTINCT(ItemID) FROM Items WHERE Brand NOT LIKE '%es%'

также возвращает элемент 1, поскольку третий элемент 1 не содержит 'es'

так что мой вопрос:

Как я могу сделать Not Contains, который гарантирует, что он вернет только те элементы, в которых ни одна из записей не содержит заданную строку?

Надеюсь, я ясно выразился по этому поводу.

Я использую SqlServer Ce 4.0


person Steven Wood    schedule 26.09.2014    source источник


Ответы (2)


person    schedule
comment
Это хорошо работает, но для завершения требуется возраст, я приму ваш ответ, а затем поэкспериментирую с индексами, чтобы попытаться улучшить производительность. - person Steven Wood; 26.09.2014

person    schedule
comment
Это также работает SELECT ItemID FROM Items WHERE ItemID NOT IN (SELECT ItemID FROM Items WHERE Brand LIKE '% es%'); - person Jayadevan; 26.09.2014