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

Hvordan opdaterer du flere felter fra en anden tabel i mysql?

Den forespørgsel, du ønsker, vil se nogenlunde sådan ud:

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;

Bemærk, at du bliver nødt til at erstatte ... med resten af ​​klummeforeningerne skrev jeg ikke.

Men vær forsigtig med det, noget fortæller mig, at denne forespørgsel vil gøre noget meget forkert i din database, fordi du ikke relaterer tabellerne ved hjælp af en unik nøgle. Hvis der er to poster med samme ASCNCOAClean.firstname du vil helt sikkert have tab af data.

Bemærk også, at den vil opdatere eksisterende poster på amdashboard , ikke tilføje nye. Hvis din hensigt er at migrere data fra ASCNCOAClean til amdashboard , forudsat amdashboard er en helt ny, tom tabel, så er den forespørgsel, du ønsker, denne:

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;



  1. MySQL - sum kolonneværdi(er) baseret på række fra samme tabel

  2. Minimering af virkningen af ​​at udvide en IDENTITY-søjle – del 4

  3. Udfør produktanalyse ved hjælp af SQL Server Full-Text Search. Del 1

  4. Sådan sender du ArrayList<> som IN-klausul i SQL-forespørgsel i MySQL