我有两张桌子,看起来都像
id name value
===================
1 Joe 22
2 Derk 30
我需要根据每个表中的检查名称将value
的值从表A
复制到表B
。
此update
语句有任何提示吗?
除了这个答案之外,如果您需要根据tablea.value动态更改tableb.value,您还可以执行以下操作:
UPDATE tableB
INNER JOIN tableA ON tableB.name = tableA.name
SET tableB.value = IF(tableA.value > 0, tableA.value, tableB.value)
WHERE tableA.name = 'Joe'
您需要连接这两个表:
例如,您希望将name
的值从表A复制到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
第二种可能是,
UPDATE TableB
SET TableB.value = (
SELECT TableA.value
FROM TableA
WHERE TableA.name = TableB.name
);