Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment mettre à jour plusieurs champs d'une autre table dans mysql ?

La requête souhaitée ressemblerait à ceci :

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;

Attention, vous devrez remplacer ... avec le reste des associations de colonnes que je n'ai pas écrites.

Mais soyez prudent avec cela, quelque chose me dit que cette requête va faire quelque chose de très mal à votre base de données, car vous ne reliez pas les tables à l'aide d'une clé unique. S'il y a deux enregistrements avec le même ASCNCOAClean.firstname vous aurez certainement des pertes de données.

Notez également qu'il va mettre à jour existant enregistrements sur amdashboard , pas en ajouter de nouveaux. Si votre intention est de migrer des données depuis ASCNCOAClean vers amdashboard , en supposant amdashboard est une toute nouvelle table vide, alors la requête que vous voulez est la suivante :

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;