- Uma instrução SQL UPDATE pode incluir operações JOIN.
- Ele pode conter zero, uma ou várias operações JOIN.
- O UPDATE afeta os registros que satisfazem as condições JOIN.
Exemplo
Aumente o preço unitário em 10% para todos os produtos que foram vendidos.
UPDATE Product
SET Product.UnitPrice = Product.UnitPrice * 1.1
FROM Product
JOIN OrderItem ON Product.Id = OrderItem.ProductId
|
Sintaxe JOIN.
UPDATE table-name1
SET column-name1 = value1
, column-name2 = value2
, ...
FROM table-name1
JOIN table-name2 ON column-name3 = column-name4
WHERE condition
|
Sintaxe INNER JOIN.
UPDATE table-name1
SET column-name1 = value1
, column-name2 = value2
, ...
FROM table-name1
INNER JOIN table-name2 ON column-name3 = column-name4
WHERE condition
|
JOIN é o mesmo que INNER JOIN; a palavra-chave INNER é opcional.
INNER JOIN é o tipo de operação JOIN mais comumente usado.
UPDATE com LEFT JOIN
Descontinue produtos que não foram vendidos.
UPDATE Product
SET IsDiscontinued = 1
FROM Product
LEFT JOIN OrderItem ON Product.Id = OrderItem.ProductId
WHERE OrderItem.Id IS NULL
|
Nota: esta instrução UPDATE usa uma operação LEFT JOIN.
UPDATE com 3 JOIN's
UPDATE I
SET I.UnitPrice = 25
FROM Customer C
JOIN Order O ON O.CustomerId = C.Id
JOIN OrderItem I ON O.Id = I.OrderId
JOIN Product P ON P.Id = I.ProductId
WHERE C.FirstName = 'Paul'
AND C.LastName = 'Henriot'
AND P.ProductName = 'Queso Cabrales'
|
Este UPDATE executa um JOIN de 4 tabelas.
O C, O, I e P são apelidos de tabela.
|