Вложенные запросы в инструкциях UPDATE, DELETE и INSERT
Вложенные запросы можно использовать в инструкциях UPDATE, DELETE, INSERT и SELECT языка DML.
В следующем примере удваивается значение столбца ListPrice таблицы Production.Product. Вложенный запрос в предложении WHERE ссылается на таблицу Purchasing.ProductVendor для ограничения количества обновляемых строк таблицы Product только теми, у которых VendorID 51.
USE AdventureWorks;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2
WHERE ProductID IN
(SELECT ProductID
FROM Purchasing.ProductVendor
WHERE VendorID = 51);
GO
Ниже приведена эквивалентная инструкция UPDATE, использующая соединение:
USE AdventureWorks;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2
FROM Production.Product AS p
INNER JOIN Purchasing.ProductVendor AS pv
ON p.ProductID = pv.ProductID AND pv.VendorID = 51;
GO
См. также