Ir para conteúdo

POWERED BY:

Arquivado

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

Roberto_S_Luz

[Resolvido] Inner Join

Recommended Posts

Olá galera, só na paz com todos vocês?????

 

Bom...estou com uma duvida e gostaria de opinião de vocês (dahhh, acho que é para isso que serve esse forum né...rsss :D ).

 

Então a duvida é: Eu tenho que realizar uma update em 4 tabelas ok.

 

Qual é a forma mais adequada?

 

Estou com duas opções até o momento.

 

1ª = Atualizar em tabela por tabela, daí só atualiza a seguinte se a anterior tiver sido atualizada corretamente (estou/estava fazendo dessa forma)

 

2ª = Utilizar o INNER JOIN (a SQL já está montada) e atualizar tudo de uma vez só. (talvez essa seja melhor para o controle de transação, tipo, se por algum motivo der pau no sistema, a atualização será cancelada ou algo do tipo e não correrá risco de atualizar em algumas tabelas e em outras não sendo que, tudo está em apenas uma SQL, bom...assim penso eu né, rsss, é por isso mesmo que estou aki, buscando sugestões).

 

Bom... estou com essa pequena grande duvida, se alguem puder me dar um sugestão, eu ficarei agradecido.

 

Desde já...obrigado a todos. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom...nenhuma sugestãozinha??? <_<

 

Bom...acho que irei ficar com a opção de usar INNER JOIN, estou começando a trabalhar com ele mas...já ouvi falar que ele deixa a SQL mais rapida, e sem falar que, irei econimizar em linhas de codigos né, pois eu teria que fazer(da forma antiga que EU estava fazendo) +/- umas 4 SQL (1 para cada tabela), agora com ele, faço apenas uma, e sem falar tambem que, parece que irá facilitar no controle de transação.

 

Enfim...acho que eu mesmo acabei respondendo à minha própria pergunta....rsss http://forum.imasters.com.br/public/style_emoticons/default/clap.gif , mas se alguem tiver algum sugestão e quiser compartilhar....ela será bem vinda

 

Galera...obrigado aos que pelo menos leram esse topico. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Abraços.... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Comandos como update, insert e delete não funcionam se for tentar atualizar/inserir/deletar um registro em mais de uma tabela por ao mesmo tempo. Você consegue usar um insert into tabela (campo) select campo from tabela1 inner join tabela2 on (..), mas não vai conseguir fazer um update tabela1, tabela2 set campo = x, campo1 = x1 .

 

Se o que lhe preocupa é consistencia de dados, use as transações do BD para gravar seus dados, dando Rollbacks sempre que ocorrer algum erro.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aí Chrnos, beleza...desde já, obrigado pela atenção à esse topico.

 

Bom...de acordo com o que você falou aí, a questão é: Não funciona ou não é o correto a se fazer???

 

Pois montei uma sql aqui...e funcionou...ele atualiza os dados nas 4 tabelas ao mesmo tempo usando o Inner Join.

 

$update = "UPDATE `cliente` AS C INNER JOIN `limite` AS L INNER JOIN `pessoa` AS P INNER JOIN `logradouro` AS D INNER JOIN `municipio` AS M 
					   INNER JOIN `estado` AS E

					  SET C.cli_identificador = '$cod_aluno',C.inst_codigo = $instituicao,C.tip_codigo = $tipo_passe,
					  C.tipo_vale_codigo = $tipo_vale,C.ver_passe = $ver_passe, C.ver_vale = $ver_vale,L.lim_valor = $limite,
					  P.pes_nome = '$nome',P.pes_data_nasc = '$data', P.pes_cpf = '$cpf',P.pes_rg = '$rg',P.pes_fone1 = '$fone1',
					  P.pes_fone2 = '$fone2',P.sexo_codigo = $sexo , P.pes_email_site= '$m_s',D.log_endereco = '$endereco',
					  D.log_bairro = '$bairro',D.log_complemento = '$complemento',D.mun_codigo = $municipio, M.est_codigo = $estado

					  WHERE C.limite_codigo = L.limite_codigo
					  AND C.pes_codigo = P.pes_codigo
					  AND P.log_codigo = D.log_codigo
					  AND D.mun_codigo = M.mun_codigo
					  AND M.est_codigo = E.est_codigo
					  AND C.pes_codigo = $pes_codigo";

Bom...aí está a sql e...funcionou aki....

 

E aqui tem instruções da propria documentação do MySQL usando o INNER JOIN para realizar uma operação de DELETE (meio da pagina em diante...)

Clique Aqui

Bom...desde já...valeu pela atenção e um grande abraço http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.