Mysql
 sql >> Database >  >> RDS >> Mysql

Come si aggiornano più campi da un'altra tabella in mysql?

La query che desideri assomiglierebbe a questa:

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;

Osserva che dovrai sostituire ... con il resto delle associazioni di colonna non ho scritto.

Ma fai attenzione, qualcosa mi dice che questa query farà qualcosa di molto sbagliato nel tuo database, perché non stai mettendo in relazione le tabelle usando una chiave univoca. Se sono presenti due record con lo stesso ASCNCOAClean.firstname avrai sicuramente una perdita di dati.

Osserva inoltre che aggiornerà esistente record su amdashboard , non aggiungerne di nuovi. Se la tua intenzione è migrare i dati da ASCNCOAClean su amdashboard , supponendo amdashboard è una nuova tabella vuota, quindi la query che desideri è questa:

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;