Я застрял в написании запроса. Это простой запрос, но у меня есть некоторые сомнения. Поэтому мне нужны новые подходы к задаче
DECLARE @ordersToSet TABLE
(
[Id] [BIGINT] NOT NULL,
[AttributeId] [BIGINT] NOT NULL
)
SELECT *
FROM dbo.Order_Attributes
WHERE OrderAttributeID IN (SELECT AttributeId
FROM @ordersToSet)
AND OrderID IN (SELECT Id
FROM @ordersToSet)
Что я хочу: запрос должен возвращать только те Order_Attributes
, где OrderId
и AttributeId
соответствуют соответствующим значениям во временной таблице @ordersToSet
.
Почему я думаю, что приведенный выше код может привести к неожиданным результатам:
@ordersToSet
таблица содержит следующие строки
Id | AttributeId
-------+------------
486455 | 12
OrderAttributes
таблица содержит следующее:
OrderID | OrderAttributeID
--------+-----------------
486455 | 11
635201 | 12
В этом случае он НЕ должен выбирать какую-либо строку, однако я сомневаюсь, что он выбирает строку со значениями OrderId = 486455
и AttributeId = 12