15

場合:

等しいところtable1からのデータで更新する方法は?table2id

問題:

次のupdateステートメントを実行すると、のすべてのレコードが更新されますtable1(のidフィールドがにtable1存在しない場合でもtable2)。

複数の更新テーブルの構文を使用して、が存在し、等しい場合にtable1のみレコードのみを更新するにはどうすればよいですか?idtable2

UPDATE table1,table2
SET table1.value=table2.value 
WHERE table2.id=table1.id

前もって感謝します。

4

4 に答える 4

27

UPDATEwith join inの正しい構文は次のとおりですMySQL

UPDATE  table1 a
        INNER JOIN table2 b
            ON a.ID = b.ID
SET     a.value = b.value 
于 2013-02-23T06:45:34.243 に答える
4

MySqlの編集

UPDATE table1 t1 INNER JOIN 
       table2 t2 ON t2.id = t1.id
   SET t1.value = t2.value 

sqlfiddle

元の答えはSQLServerに対するものでした

UPDATE table1
   SET table1.value = table2.value 
  FROM table1 INNER JOIN 
       table2 ON table2.id=table1.id

sqlfiddle

于 2013-02-23T06:40:14.897 に答える
2

あなたはこれを試すことができます:

UPDATE TABLE1
SET column_name = TABLE2.column_name
FROM TABLE1, TABLE2
WHERE TABLE1.id = TABLE2.id
于 2013-02-23T06:41:30.143 に答える
0
UPDATE table1
SET table1.value = (select table2.value 
WHERE table2.id=table1.id)
于 2013-02-23T06:48:36.730 に答える