Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SLaurianO

Clausula Update

Recommended Posts

Bom dia.

 

Gostaria de resolver a seguinte questão para atualizar o campo de uma tabela usando o de outra:

 

update tabela1 set tabela1.campo1 = tabela3.campo3

from tabela 1 t1

inner join tabela2 t2

on t1.campo2 = t2.campo2

inner join tabela3

on t3.campo1 = t2.campo1

 

 

Como podem ver, estou usando a tabela 2 para ligar as tabelas 1 e 3, porém não estou tendo resultado.

 

alguém pode me ajudar? Preciso ligar algo mais? fazer alguma subquery... Enfim

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

 

Gostaria de resolver a seguinte questão para atualizar o campo de uma tabela usando o de outra:

 

update tabela1 set tabela1.campo1 = tabela3.campo3

from tabela 1 t1

inner join tabela2 t2

on t1.campo2 = t2.campo2

inner join tabela3

on t3.campo1 = t2.campo1

 

 

Como podem ver, estou usando a tabela 2 para ligar as tabelas 1 e 3, porém não estou tendo resultado.

 

alguém pode me ajudar? Preciso ligar algo mais? fazer alguma subquery... Enfim

 

Grato.

Normalmente quando preciso fazer um update desta forma faco assim:

update Tab1 set campo1 = (select Tab2.campo2 from Tab2 where Tab2.ID = Tab1.ID)

where <condicao>

Compartilhar este post


Link para o post
Compartilhar em outros sites

SLaurianO,

 

de uma procurada no forum por "cursores".

Dependendo da aplicacao eh bem util, mas cuidado com performance ;)

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode grar um sub-query para agrupar 2 das tabelas e depois atualizar a tabela principal. Veja seu exemplo modificado

 

update t1

set

t1.campo1 = sq1.campo3

from tabela1 as t1,

( select t2.campo2, t3.campo3

from tabela2 as t2 inner join tabela3 as t3

on t2.campo = t3.campo1

) as sq1

where t1.campo = sq.campo2

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.