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

1つのMySQLテーブルを別のMySQLテーブルの値で更新します

    UPDATE tobeupdated
    INNER JOIN original ON (tobeupdated.value = original.value)
    SET tobeupdated.id = original.id
    

    それはそれをするはずです、そして実際にそれはあなたのものとまったく同じことをします。ただし、結合には複数の「WHERE」条件よりも「JOIN」構文の方が好きです。読みやすいと思います

    実行速度が遅いということですが、テーブルの大きさはどれくらいですか? tobeupdated.valueにインデックスが必要です およびoriginal.value

    編集:クエリを簡略化することもできます

    UPDATE tobeupdated
    INNER JOIN original USING (value)
    SET tobeupdated.id = original.id
    

    USING 結合の両方のテーブルに同じ名前のkeyがある場合は省略形です idなど 。つまり、等結合- http://en.wikipedia.org/ wiki / Join_(SQL)#Equi-join



    1. AWSでのOracleデータベースのMySQLへの移行、パート2

    2. JSONPathワイルドカードステップ(**)がMariaDBでどのように機能するか

    3. データベースのベンチマーク101-パート1

    4. SQL * Plus/SQLcl出力グリッドに垂直方向の境界線を追加する方法