Rumah  >  Soal Jawab  >  teks badan

lajur kemas kini mysql dengan nilai dari jadual lain

Saya ada dua meja, kedua-duanya serupa

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

Saya perlu value 的值从 tableA 复制到 tableB berdasarkan nama semak dalam setiap jadual.

Ada petua untuk pernyataan UPDATE ini?

P粉232793765P粉232793765374 hari yang lalu509

membalas semua(2)saya akan balas

  • P粉186904731

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

    Anda perlu menyertai dua jadual:

    Sebagai contoh, anda mahu 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'

    Kemas kini 1

    UPDATE tableB t1 
            INNER JOIN tableA t2 
                 ON t1.id = t2.id
    SET t1.name = t2.name

    Kemas kini 2

    UPDATE tableB t1 
            INNER JOIN tableA t2 
                 ON t1.name = t2.name
    SET t1.value = t2.value

    balas
    0
  • P粉511985082

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

    Sebagai tambahan kepada jawapan ini, jika anda perlu menukar tableB.value secara dinamik berdasarkan tableA.value, anda boleh melakukan perkara berikut:

    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'

    balas
    0
  • Batalbalas