sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo actualiza varios campos de otra tabla en mysql?

La consulta que desea se vería así:

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;

Tenga en cuenta que tendrá que reemplazar ... con el resto de las asociaciones de columnas que no escribí.

Pero tenga cuidado con eso, algo me dice que esta consulta va a hacer algo muy malo en su base de datos, porque no está relacionando las tablas usando una clave única. Si hay dos registros con el mismo ASCNCOAClean.firstname ciertamente tendrá pérdida de datos.

También observe que va a actualizar existentes registros en amdashboard , no añadir nuevos. Si su intención es migrar datos desde ASCNCOAClean a amdashboard , asumiendo amdashboard es una tabla nueva y vacía, entonces la consulta que desea es 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;