Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como você atualiza vários campos de outra tabela no mysql?


A consulta que você deseja seria algo assim:
UPDATE amdashboard a, ASCNCOAClean b SET
   a.ASCID            = b.id,
   a.ASCFirst         = b.firstname,
   a.ASCLast          = b.lastname,
   a.ASCOtherName     = b.listingspousename,
   ...
   a.ASCMaritalStatus = b.MaritialStatus
WHERE a.actorsfirst = b.firstname;

Observe que você terá que substituir ... com o resto das associações de coluna que eu não escrevi.

Mas cuidado com isso, algo me diz que essa consulta vai fazer algo muito errado com seu banco de dados, pois você não está relacionando as tabelas usando uma chave única. Se houver dois registros com o mesmo ASCNCOAClean.firstname você certamente terá perda de dados.

Observe também que ele atualizará existentes registros no amdashboard , não adicionar novos. Se sua intenção é migrar dados de ASCNCOAClean para amdashboard , assumindo amdashboard é uma tabela nova e vazia, então a consulta que você deseja é esta:
INSERT INTO amdashboard (
    ASCID, ASCFirst, ASCLast, ASCOtherName, ASCAdd1, ASCAdd2, ASCCity, ASCState, 
    ASCZip, ASCZip4, ASCY2007, ASCY2008, ASCY2009, ASCY2010, ASCY2011, ASCY2012,
    ASCEthnicity, ASCGender, ASCMaritalStatus
)
SELECT
    id, firstname, lastname, listingspousename, add1, add2, city, state,
    zip, zip4, y2007, y2008, y2009, y2010, y2011, y2012, Ethnicity, Gender,
    MaritialStatus
FROM ASCNCOAClean;