lucas_rc 0 Denunciar post Postado Outubro 29, 2007 Galera tenho uma tabela que não tem um campo ID nela e eu preceisei fazer uma atualização nela, porém existe alguns filtros que preciso fazer porém nao estou conseguindo fazer um UPDATE usando as 4 tabelas que preciso, o UPDATE que preciso fazer é basiado neste SQL... A versão do MySQL que uso é 4.0.21-nt SELECT l.IdUnidade, p.IdLinha, el.Data, p.IdProdutor, p.IdPropriedade, el.IdEvento, FROM tbLanc lm INNER JOIN tbEventoLanc el ON lm.IdNumLancamento=el.IdNumLancamento INNER JOIN tbPropriedade p On p.IdPropriedade=lm.IdNumLancamento INNER JOIN tbLinha l ON l.IdLinha=p.IdLinha WHERE (l.IdUnidade= 2) AND (p.IdLinha BETWEEN '1' AND '99999') AND (el.Data BETWEEN '2007-01-01' AND '2007-12-31') AND (el.IdEvento= '5') Galera como que eu posso estar fazendo este UPDATE. Desde já agradeço... Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Outubro 29, 2007 Bom, ok, esse é seu SELECT. Agora dê detalhes sobre o UPDATE, Compartilhar este post Link para o post Compartilhar em outros sites
allan.web 0 Denunciar post Postado Novembro 12, 2007 Ola. Me metendo no meio do topico, mas minha duvida é parecida. Precusi fazer um update sendo que a condição para ele seja uma comparação em outra tabela, mais ou menos isso: UPDATE simula_loja_rede INNER JOIN simula_loja_consumo_total ON simula_loja_rede.cod_cliente = simula_loja_consumo_total.cod_cliente SET des_clientes = '2' WHERE simula_loja_rede.cod_cliente = '30' Esse não funcionou, mas é algo assim que estou precisando, alguem sabe se isso é possivel no UPDATE? Compartilhar este post Link para o post Compartilhar em outros sites
Giovani 104 Denunciar post Postado Novembro 12, 2007 Título do tópico editado conforme Regras do Fórum iMasters Sai: UPDATE UTILIZANDO 4 TABELAS Entra: Update utilizando 4 tabelas Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Novembro 13, 2007 Olá Lucas, Analise da seguinte forma: se esse SELECT enviado ao fórum por você retorna os registros que você deseja atualizar, basta comverter este em UPDATE, sem mexer nas junções. UPDATE tbLanc lm INNER JOIN tbEventoLanc el ON lm.IdNumLancamento=el.IdNumLancamento INNER JOIN tbPropriedade p ON p.IdPropriedade=lm.IdNumLancamento INNER JOIN tbLinha l ON l.IdLinha=p.IdLinha /* AQUI você DEVE SETAR OS VALORES QUE SERÃO ATUALIZADOS */ SET alias1.campo1 =valor1, alias2.campo2 =valor2 [...] WHERE (l.IdUnidade= 2) AND (p.IdLinha BETWEEN '1' AND '99999') AND (el.DATA BETWEEN '2007-01-01' AND '2007-12-31') AND (el.IdEvento= '5') Fiz um exemplo prático rapidamente aqui para tornar a explicação mais clara: mysql> USE test DATABASE changed mysql> UPDATE l1 AS a INNER JOIN l2 AS b SET a.id = b.id; Query OK, 0 rows affected (0.00 sec) Rows matched: 0 Changed: 0 Warnings: 0 ...somente alinhe as colunas e os valores que serão atualizados no UPDATE, baseados em valores ou não de colunas de outras tabelas envolvidas nas junções...uma detalhe importante, teste o comando em um ambiente de testes e depois execute na produção. Qualquer dúvida volte a postar!! Compartilhar este post Link para o post Compartilhar em outros sites