sql >> データベース >  >> RDS >> Mysql

mysqlの別のテーブルから複数のフィールドをどのように更新しますか?

    必要なクエリは次のようになります:

    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;
    

    ...を置き換える必要があることに注意してください 私が書いていなかった残りの列の関連付けと一緒に。

    ただし、注意してください。一意のキーを使用してテーブルを関連付けていないため、このクエリはデータベースに非常に悪い影響を与えるとのことです。同じASCNCOAClean.firstnameのレコードが2つある場合 確かにデータが失われます。

    また、既存が更新されることにも注意してください。 amdashboardのレコード 、新しいものを追加しないでください。 ASCNCOACleanからデータを移行する場合 amdashboardへ 、amdashboardを想定 が真新しい空のテーブルである場合、必要なクエリは次のとおりです。

    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. Oracleのvarchar(max)に相当するものは何ですか?

    2. Laravel5.5でMySQL関数を作成する

    3. ユニコード文字を含む列でのMysqlの順序

    4. SQLServerとMySQLプログラムの同期