搜尋

首頁  >  問答  >  主體

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

我有兩張桌子,看起來都像是

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

我需要根據每個表中的檢查名稱將 value 的值從 tableA 複製到 tableB

對於這個 UPDATE 語句有什麼提示嗎?

P粉232793765P粉232793765483 天前586

全部回覆(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
  • 取消回覆