suchen

Heim  >  Fragen und Antworten  >  Hauptteil

MySQL-Update-Spalte mit Wert aus einer anderen Tabelle

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粉232793765P粉232793765419 Tage vor555

Antworte allen(2)Ich werde antworten

  • 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

    Antwort
    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'

    Antwort
    0
  • StornierenAntwort