DB2 - Exemplos simples - UPDATE com JOIN



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

DB2 - Exemplos simples - UPDATE com JOIN
  • 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.