Tengo dos mesas, ambas parecidas
id name value
===================
1 Joe 22
2 Derk 30
Necesito copiar el valor de valuefrom tableAa en tableBfunción del nombre de verificación en cada tabla.
¿Algún consejo para esta UPDATEdeclaración?
mysql
sql
sql-update
LeoSam
fuente
fuente

INNER JOINes perfecto en esta situación. También solíaCONCAT_WSfusionar el nombre del producto y el SKU de otra tablaUPDATE participants_registrations INNER JOIN participants ON participants.id = participants_registrations.participantId INNER JOIN registrations ON registrations.id = participants_registrations.registrationId LEFT JOIN groups ON (groups.id = registrations.groupId) SET registrations.groupId = groups.id, registrations.groupName = groups.name, participants.memberOfGroupName = groups.namenecesitas unir las dos tablas:
por ejemplo, desea copiar el valor de
nametableA entableBdonde tienen el mismoIDACTUALIZACIÓN 1
ACTUALIZACIÓN 2
fuente
wherecláusula o modificarlawheresegún sus necesidades ..La segunda posibilidad es,
fuente
.namese indexa en ambas tablas?La segunda opción también es factible si está utilizando el modo de actualizaciones seguras (y obtiene un error que indica que ha intentado actualizar una tabla sin un DÓNDE que usa una columna CLAVE), agregando:
fuente
fuente
Almacene sus datos en la tabla temporal
Ahora actualice la columna
fuente
En mi caso, la solución aceptada fue demasiado lenta. Para una tabla con 180K filas, la tasa de actualizaciones fue de aproximadamente 10 filas por segundo. Esto es con los índices en los elementos de unión.
Finalmente resolví mi problema usando un procedimiento:
Espero que ayude a alguien en el futuro como me ayudó
fuente
Si tiene un campo común en ambas tablas, ¡entonces es tan fácil! ...
Tabla-1 = tabla donde desea actualizar. Tabla-2 = tabla de donde tomas los datos.
fuente