MySQL-Update-Spalte mit Wert aus einer anderen Tabelle
P粉232793765
P粉232793765 2023-10-11 20:04:57
0
2
553

Ich habe zwei Tische, beide sehen gleich aus

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

Ich muss value 的值从 tableA 复制到 tableB basierend auf dem Schecknamen in jeder Tabelle.

Irgendwelche Tipps für diese UPDATE Aussage?

P粉232793765
P粉232793765

Antworte allen(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'
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage