首页  >  问答  >  正文

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

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

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

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

对于这个 UPDATE 语句有什么提示吗?

P粉232793765P粉232793765374 天前512

全部回复(2)我来回复

  • P粉186904731

    P粉1869047312023-10-12 17:50:26

    您需要连接两个表:

    例如,您想要将 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

    回复
    0
  • P粉511985082

    P粉5119850822023-10-12 00:34:31

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

    回复
    0
  • 取消回复