Update com Join

Firebird

28/10/2005

Pessoal,

Gostaria de saber se é possível fazer um update da seguinte forma:
Tenho três tabelas:
1) Horarios
2) Funcionários
3) Cartão Ponto
Cada vez que o horário for alterado, todos os cartões ponto dos funcionários que usam este horário deverão ser atualizados.
Nesse caso, vou ter mais de um funcionário no update, o que dá o erro ´multiple rows´.
Seria possível usar join em um update?
Pensei em colocar o update dentro de um laço while, isso é recomendado?


Adrinei

Adrinei

Curtidas 0

Respostas

Adrinei

Adrinei

28/10/2005

Consegui fazer funcionar !!!

UPDATE TABELA1 SET CAMPO1=1
WHERE (TABELA1) IN (SELECT CAMPO2 FROM TABELA2 WHERE CAMPO3=1)

Achei a resposta em http://fr.wikipedia.org/wiki/SQL

Falow


GOSTEI 0
Bruno Belchior

Bruno Belchior

28/10/2005

tem certeza que é a Tabela1 que deve ser colocada no comando where in?


GOSTEI 0
Adrinei

Adrinei

28/10/2005

Não... foi mal, na realidade é Campo2

UPDATE TABELA1 SET CAMPO1=1
WHERE (CAMPO2) IN (SELECT CAMPO2 FROM TABELA2 WHERE CAMPO3=1)


GOSTEI 0
POSTAR