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

重複した行を削除してテーブルを更新する方法

    注文テーブルを更新するには、次のようにします。

    update  orders
    join    regions r1
    on      r1.id = orders.region_id
    set     orders.region_id = 
            (
            select  min(r2.id)
            from    regions r2
            where   r2.name = r1.name
            )
    

    その後、次のコマンドで重複行を削除できます:

    delete  regions
    from    regions
    where   id not in
            (
            select  id
            from    (
                    select  min(id) as id
                    from    regions
                    group by
                        name
                    ) as SubqueryAlias
            )
    

    36行目のMySQLエラーERROR 1093 (HY000) at line 36: You can't specify target table 'regions' for update in FROM clause




    1. mysqlコマンドラインで高精度のクエリ時間を確認するにはどうすればよいですか?

    2. リメンバーミーシステムの基本

    3. 説明計画と実行計画の違い

    4. MySQL8.0でルートパスワードをリセットする方法