Pular para o conteúdo principal

Update com Join no MySQL

Como fazer um update em uma tabela do MySQL, com base no valor de um campo de outra tabela com a qual essa se relaciona? Veja o modelo a seguir:

update TabelaQueDesejaAtualizar, TabelaComAQualVaiRelacionar
set TabelaQueDesejaAtualizar.CampoParaAtualizar = TabelaComAQualVaiRelacionar.CampoComValorDesejado
where TabelaQueDesejaAtualizar.CampoParaRelacionar = TabelaComAQualVaiRelacionar.CampoParaRelacionar;


Exemplo:

update Funcionario, PessoaFisica
set Funcionario.codPessoa = PessoaFisica.codPessoa
where Funcionario.codPessoaFisica = PessoaFisica.codPessoaFisica;

Considerando as tabelas Funcionário e PessoaFisica, atribui ao campo codPessoa na tabela Funcionario o valor do campo codPessoa da tabela PessoaFisica, levando em conta que as tabelas Funcionario e PessoaFisica possuem um relacionamento por meio do campo codPessoaFisica existente nas duas tabelas. Desta forma, na tabela Funcionario, no campo codPessoa, teremos o mesmo valor deste campo no registro correspondente na tabela PessoaFisica.
Claro que esse campo codPessoa na tabela Funcionario não faz nenhum sentido e é totalmente redundante, sendo que o mesmo existe na tabela PessoaFisica. O exemplo foi apenas para mostrar como funciona um update com “join” no MySQL, e que deve funcionar em outros bancos. Eu lembro que no SQL Server havia uma forma diferente de se fazer isso, mas não lembro exatamente como.

Fonte:http://manoelcampos.com/2009/03/22/update-com-join-no-mysql/

Comentários

+ Vistas

Programas em "C" 1º Período de Sistemas - FAMINAS

Programa Calcula média de n Números. #include <stdio.h> int n,cont; float media,soma=0, numeroDoFor=0; int main(){     printf("Quantos numeros voce quer calcular?\n");     scanf("%i",&n);     for(cont=1;cont<= n; cont++){     //Usando if alternativo        (!numeroDoFor) ? printf("Informe um numero: ")  : printf("Informe outro numero: ");        scanf("%f",&numeroDoFor);        fflush(stdin);        soma+=numeroDoFor;     }   //fim for     printf("Soma = %.2f \n",soma);     printf("Media = %.2f \n",soma/n);       getchar();       return 0;  } Programa Calcula média do Aluno #include <stdio.h> int n1,n2; int main(){     printf("PROGRAMA MEDIA \n\n");       printf("Digite a nota\n");     scanf("%i",...

Resumo Interação Humano Computador - I.H.C.

Interação Humano Computador A área de IHC tem o objetivo de satisfazer as necessidades de usabilidade, aplicabilidade e comunicabilidade dos usuários. As aplicações devem buscar atingir a usabilidade, aplicabilidade e comunicabilidade, oferecendo ao usuário artefato fáceis de usar, aplicar e comunicar. IHC é uma área multidisciplinar. No contexto de IHC devemos considerar 4 (quatro) conceitos básicos: o sistema, os usuários, os desenvolvedores e o ambiente de uso, com 5 (cinco) focos: ·          Design e desenvolvimento de hardware e software. ·          Estudo da capacidade e limitação física e cognitiva do usuário. ·          Instrumentação teórica e prática para o design e desenvolvimento de sistemas. ·          Modelos de interfaces e do processo de iteração usuário-sistema. ·    ...

Existe uma fórmula padrão de Calculo de Estoque Mínimo e Máximo?

  Na verdade, não existe uma fórmula única e universal para calcular o estoque mínimo e máximo ideal para uma empresa de varejo, pois diversos fatores influenciam esses valores. No entanto, existem algumas fórmulas e métodos básicos que podem te ajudar a estimar esses níveis de forma eficiente, considerando as características específicas do seu negócio. Fórmula básica para o estoque mínimo: Estoque mínimo = Consumo médio diário x Tempo de reposição Essa fórmula leva em conta a quantidade média de produtos que você vende por dia e o tempo que leva para receber novos produtos do seu fornecedor. O objetivo é garantir que você tenha estoque suficiente para atender à demanda durante esse período de reposição, mesmo que haja imprevistos. Fórmula básica para o estoque máximo: Estoque máximo = Estoque médio + Lote de compra Essa fórmula considera o seu estoque médio, que é a quantidade média de produtos que você costuma ter em estoque, e o tamanho do lote de compra que você costuma fazer. ...