lajur kemas kini mysql dengan nilai dari jadual lain
P粉232793765
P粉232793765 2023-10-11 20:04:57
0
2
554

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粉232793765
P粉232793765

membalas semua(2)
P粉186904731

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
P粉511985082

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'
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan