quarta-feira, 3 de janeiro de 2018

MySQL - Update com Inner Join (Update From)

No SQL Server conseguimos fazer update de uma tabela lendo dados de outra através do UPDATE FROM.

No MySQL temos um recuros parecido, que é o UPDATE com INNER JOIN.
Fazemos o UPDATE na tabela de destino, que recebeerá os dados, e um INNER JOIN com a tabela de origem, de onde os dados virão.

UPDATE tabela_destino dest 
  INNER JOIN tabela_origem orig  ON orig.id = dest.id 
 SET dest.valorTotal = orig.valorTotal 
    ,dest.quantidade = orig.quantidade 
WHERE dest.id in (17991 , 17992);