Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie aktualisieren Sie mehrere Felder aus einer anderen Tabelle in MySQL?

Die gewünschte Abfrage würde in etwa so aussehen:

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;

Beachten Sie, dass Sie ... ersetzen müssen mit den restlichen Spaltenassoziationen habe ich nichts geschrieben.

Aber seien Sie vorsichtig damit, irgendetwas sagt mir, dass diese Abfrage etwas sehr Falsches mit Ihrer Datenbank machen wird, weil Sie die Tabellen nicht mit einem eindeutigen Schlüssel verknüpfen. Wenn es zwei Datensätze mit demselben ASCNCOAClean.firstname gibt Sie werden sicherlich Daten verlieren.

Beachten Sie auch, dass vorhandene aktualisiert werden Aufzeichnungen auf amdashboard , keine neuen hinzufügen. Wenn Sie beabsichtigen, Daten von ASCNCOAClean zu migrieren zu amdashboard , unter der Annahme von amdashboard eine brandneue, leere Tabelle ist, lautet die gewünschte Abfrage:

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;