У меня есть 3 таблицы, соединенные вместе, и таблица NSR_Details
, которая содержит элементы, которые должны быть исключены в выборе трех таблиц.SQL - Невозможно исключить данные, используя NOT EXIST
Я могу исключить информацию, указанную с NSR_details
, но когда я ищу с LIKE
, она по-прежнему возвращает исключенные данные. Вот мой запрос:.
SELECT b.MainID
,a.Description
,b.ItemID
,b.Size
,c.Current_SRP
,b.Barcode
FROM IMF_SKU AS b
LEFT JOIN IMF_Main AS c ON c.MainID = b.MainID
LEFT JOIN IMF_Extensions AS a ON a.MainID = b.MainID
WHERE (a.Description LIKE 'BBB')
OR (b.Barcode LIKE 'BBB')
AND NOT EXISTS (
SELECT *
FROM INV_SKU_NSR_DetailsRepo
)
Так в NSR_Details у меня есть AAA и BBB данные, чтобы исключить, (остальные имеют AAA и BBB детали, а также CCC, DDD, ЕЕЕ и т.д. не в NSR_details я просто хочу, чтобы исключить AAA и BBB, когда я заполнить условие условия WHERE
. Я использую SSMS как мой СУБД, если кто-нибудь спросит.
Необязательный суб-запрос NOT EXISTS требует ссылки на основной запрос в предложении WHERE. – jarlh
Имея условия правой стороны таблицы LEFT JOIN в предложении WHERE, делает LEFT JOIN выполненным как обычный INNER JOIN. Перейдите в положение ON, чтобы получить истинное поведение левого соединения. – jarlh
http://www.geeksengine.com/database/subquery/exists.php – OldProgrammer