Problemas com SQL
:D Olá mossada ....
Tenho a nescessidade de alterar um registro usando o comando SQL ´UPDATE´ porém na clausula ´WHERE´ desta query preciso fazer uma comparação à um campo de uma outra tabela.
O que quero saber é tem como usar artimanhas do SQL como o INNER JOIN em um UPDATE :?:
Obs.: Uso MySql Server
Tenho a nescessidade de alterar um registro usando o comando SQL ´UPDATE´ porém na clausula ´WHERE´ desta query preciso fazer uma comparação à um campo de uma outra tabela.
O que quero saber é tem como usar artimanhas do SQL como o INNER JOIN em um UPDATE :?:
Obs.: Uso MySql Server
Mitsalito
Curtidas 0
Respostas
Flaviosan
15/06/2004
Caro Guerra, tambem tenho esse problema. Essa é uma deficiencia presente no mysql 3.XX, que só foi solucionada apartir da versão 4.XX.
Um exemplo do que eu fiz aqui:
Ficou complicado?
Espero ter ajudado.
Um exemplo do que eu fiz aqui:
update clientes, dependentes set dependentes.nome = ´fulano´ where ((dependentes.codcliente = clientes.codigo) and (clientes.nome = ´ciclano´))
Ficou complicado?
Espero ter ajudado.
GOSTEI 0
Mitsalito
15/06/2004
Caro flaviosan valeu a inteção, mas a query não passou, e sobre a verssão do MySql a principio a empresa em que trabalho não está disposta a trocar para o 4.
Mas, o nosso DBA já está estudando a troca
Mas, o nosso DBA já está estudando a troca
GOSTEI 0
Flaviosan
15/06/2004
Desculpe não ter dito, mas a sql é pra versão 4.xx.
GOSTEI 0
Christ
15/06/2004
Kra o negócio é você usar sempre um código SQL padrão de preferência o padrão universal ANSI, pois alguns SGDB´s como access, SQL server e Oracle criam particularidades e isso se torna um problemão quando você usa um código feito em um banco e usa no outro.
Aki na empresa onde eu trabalho eu tenho muitas queries que rodam exatamente iguais em diversos bancos, temos sistemas em MySQL (3.x.x e 4.xx), InterBase, SQL Server e Access, e as queries rodam numa boa.
essa coisa de usar INNER JOIN, LEFT JOIN isso é bobeira, pois isso são particularidades que de fato ajudam mas acabam sendo um problema se você precisar usar a query em outro SGDB.
Quanto ao seu problema no UPDATE eu já fiz isso que o amigo ´flaviosan´ te informou e deu certo e ainda portando o mesmo código em varios bancos.
dependendo da sua situação, uma alternativa seria fazer a comparação no código fonte do seu programa assim poderia matar o problema numa boa, algo como passar por parâmetro o valor da outra tabela que você quer comparar para o código do UPDATE.
é isso.
Aki na empresa onde eu trabalho eu tenho muitas queries que rodam exatamente iguais em diversos bancos, temos sistemas em MySQL (3.x.x e 4.xx), InterBase, SQL Server e Access, e as queries rodam numa boa.
essa coisa de usar INNER JOIN, LEFT JOIN isso é bobeira, pois isso são particularidades que de fato ajudam mas acabam sendo um problema se você precisar usar a query em outro SGDB.
Quanto ao seu problema no UPDATE eu já fiz isso que o amigo ´flaviosan´ te informou e deu certo e ainda portando o mesmo código em varios bancos.
dependendo da sua situação, uma alternativa seria fazer a comparação no código fonte do seu programa assim poderia matar o problema numa boa, algo como passar por parâmetro o valor da outra tabela que você quer comparar para o código do UPDATE.
é isso.
GOSTEI 0