281

私は2つのテーブルを持っています。

id  name  value
===================
1   Joe     22
2   Derk    30

各テーブルのチェック名に基づいて、 valuefromからtableAtoの値をコピーする必要があります。tableB

UPDATEこの声明のヒントはありますか?

4

8 に答える 8

187

2 つのテーブルを結合する必要があります。

nameたとえば、の値をtableA からtableB同じ場所にコピーしたいID

UPDATE tableB t1 
        INNER JOIN tableA t2 
             ON t1.id = t2.id
SET t1.name = t2.name 
WHERE t2.name = 'Joe'

更新 1

UPDATE tableB t1 
        INNER JOIN tableA t2 
             ON t1.id = t2.id
SET t1.name = t2.name 

更新 2

UPDATE tableB t1 
        INNER JOIN tableA t2 
             ON t1.name = t2.name
SET t1.value = t2.value
于 2012-07-29T12:02:23.390 に答える
111

2番目の可能性は、

UPDATE TableB 
SET TableB.value = (
    SELECT TableA.value 
    FROM TableA
    WHERE TableA.name = TableB.name
);
于 2014-04-11T22:08:52.753 に答える