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

LEFTJOINを使用してMySQLの複数のテーブルを更新する

    UPDATE  t1
    LEFT JOIN
            t2
    ON      t2.id = t1.id
    SET     t1.col1 = newvalue
    WHERE   t2.id IS NULL
    

    SELECTの場合は注意してください NOT INを使用する方が効率的です /NOT EXISTS 構文:

    SELECT  t1.*
    FROM    t1
    WHERE   t1.id NOT IN
            (
            SELECT  id
            FROM    t2
            )
    

    パフォーマンスの詳細については、ブログの記事を参照してください:

    残念ながら、MySQL UPDATEのサブクエリでターゲットテーブルを使用することはできません ステートメント、それがあなたがより効率の悪いLEFT JOINに固執する必要がある理由です 構文。



    1. ROracleパッケージをWindows7にインストールするにはどうすればよいですか?

    2. CentOS6にMySQLをインストールする方法

    3. クエリによって返された行ごとにストアドプロシージャを1回実行するにはどうすればよいですか?

    4. R12.2への段階的なアップグレードプロセスパート-2(R12.2.0のメインアップグレードドライバー)のアップグレード