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",...

Web server Apache + PHP 5 + MySQL no Debian Squeeze sem complicação

Nessa dica vou ensinar como montar um Web server com Apache, PHP5 e MySQL dentro do Debian Squeeze, mas sem aquelas complicações que a gente costuma encontrar.  Ao final dessa dica, se você já tem um site pronto, você poderá colocar ele funcionando pelo menos na sua rede intranet.   Instalação:   Entre como root no seu sistema:  $ su root  O primeiro pacote a ser instalado é o Apache:  # aptitude install apache2 apache2-doc   Após o Apache, você ativar o suporte ao PHP:  # aptitude install php5 libapache2-mod-php5 Agora terá que ativar o suporte ao MySQL do PHP:  # aptitude install php5-mysql   Configuração:  Para quem vai montar um web server pessoal, primeiro devemos ativar o módulo "userdir" do servidor apache2.  Para isso você apenas digita:  # a2enmod userdir  Depois reinicie seu apache:  # /etc/init.d/apache2 restart  Se você vai col...

Estrutura de Dados

Baixe aqui - Estrutura de dados Usando C. Matéria Estrutura de Dados - 3º Sistemas de Informação. Estrutura de dados Prof : Daniel. e-mail: dannybor@gmail.com Conceito   Estrutura de dados e algoritmos estão intimamente ligados, não se pode estudar estrutura de dados sem considerar o algoritmo associado, a elas assim como a escolha de algoritmos em geral depende da representação e da estrutura dos dados.   Para resolver um problema é necessário escolher uma abstração da realidade, em geral mediante a definição de um conjunto que representa a situação real.   A segunda a ser escolhida é a forma de representar esse dado. A escolha da representação do dado é determinada entre outras, pelas operações a serem realizadas sobre os dados.   Considere a operação de adição.   Para pequenos números, uma boa representação é por meio de barras verticais caso em que a operação de adição é bastante simples.   Já a representação por dígitos decimais ...