提问者:小点点

mysql使用另一个表中的值更新列


我有两张桌子,看起来都像

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

我需要根据每个表中的检查名称将value的值从表A复制到表B

update语句有任何提示吗?


共3个答案

匿名用户

除了这个答案之外,如果您需要根据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
);