mysql 使用另一个表中的值更新列
P粉232793765
P粉232793765 2023-10-11 20:04:57
0
2
566

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

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

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

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

P粉232793765
P粉232793765

全部回复(2)
P粉186904731

您需要连接两个表:

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

除了这个答案之外,如果您需要根据 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'
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板