Как написать это утверждение с помощью join без использования (не в) statment ?
How to write this statement by using join without using (not in) statement ?
Я работаю на SQL server 2012
Мне нужно использовать альтернативный оператор запроса, чтобы (не в)
использование только условий join и where
Возможно это или нет ?
Что я уже пробовал:
SELECT PartID, SupplierId FROM #parts WHERE PartID NOT IN ( SELECT t.PartID FROM #tempsupplier AS s INNER JOIN #TradeCodes AS t ON t.TradeCode = s.TradeCode );
Подробности Если вам нужно
create table #tempsupplier ( SupplierId int, TradeCode int ) insert into #tempsupplier(SupplierId,TradeCode) values (10,15) create table #parts ( PartID int, PartNumber nvarchar(200), SupplierId int, TradeCode int ) insert into #parts (PartID,PartNumber,SupplierId) values (100,'silicon',10), (200,'motherboard',10), (300,'iron',10), (400,'plastic',10), create table #TradeCodes ( PartID int, TradeCode int ) insert into #TradeCodes (PartID,TradeCode) values (300,15), (400,15) FinalResult partid companyid 100 10 200 10
MadMyche
Что плохого в использовании NOT IN?
dnibbo
Я не думаю, что есть что-то неправильное в том, что у вас есть, если я правильно читаю это. Не в том, что это совершенно нормально.
Вы пытаетесь найти все "части", которые не имеют торгового кода?
Вы могли бы использовать
SELECT p.PartID, p.SupplierID FROM #parts p LEFT OUTER JOIN #TradeCodes t ON t.PartID = p.PartID WHERE t.TradeCode IS NULL
ahmed_sa
спасибо за ответ
заявление я пишу (не в)
дайте мне правильный результат
но мне нужно использовать join with where если есть условие
возможно это или нет