columna de actualización de MySQL con valor de otra tabla

Resuelto LeoSam asked hace 12 años • 7 respuestas

Tengo dos mesas, ambas parecen

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

Necesito copiar el valor de valuedesde tableAa tableBsegún el nombre del cheque en cada tabla.

¿ Algún consejo para esta UPDATEafirmación?

LeoSam avatar Jul 29 '12 18:07 LeoSam
Aceptado

Además de esta respuesta, si necesita cambiar tableB.value según tableA.value dinámicamente, puede hacerlo, por ejemplo:

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'
RafaSashi avatar Oct 13 '2013 14:10 RafaSashi

necesitas unir las dos mesas:

por ejemplo, desea copiar el valor de namela tabla A tableBdonde tienen el mismoID

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

ACTUALIZACIÓN 1

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

ACTUALIZACIÓN 2

UPDATE tableB t1 
        INNER JOIN tableA t2 
             ON t1.name = t2.name
SET t1.value = t2.value
John Woo avatar Jul 29 '2012 12:07 John Woo

La segunda posibilidad es,

UPDATE TableB 
SET TableB.value = (
    SELECT TableA.value 
    FROM TableA
    WHERE TableA.name = TableB.name
);
Samir Alajmovic avatar Apr 11 '2014 22:04 Samir Alajmovic