Tabla de actualización de MySQL basada en el valor de otra tabla

Resuelto verheesj asked hace 12 años • 7 respuestas

Tengo dos mesas,

Aquí está mi primera mesa,

ID      SUBST_ID        CREATED_ID
1       031938          TEST123
2       930111          COOL123
3       000391          THIS109
4       039301          BRO1011
5       123456          COOL938
...     ...             ...

Esta es mi segunda mesa,

ID      SERIAL_ID       BRANCH_ID
1       039301          NULL
2       000391          NULL
3       123456          NULL
...     ...             ...

Necesito de alguna manera actualizar todas las filas dentro de mi segunda tabla usando datos de mi primera tabla.

Tendría que hacer todo esto en una sola consulta de actualización.

Tanto SUBST_ID como SERIAL_ID coinciden, es necesario tomar el create_id de la primera tabla e insertarlo en la segunda tabla.

Entonces la segunda tabla quedaría como sigue,

ID      SERIAL_ID       BRANCH_ID
1       039301          BRO1011
2       000391          THIS109
3       123456          COOL938
...     ...             ...

Gracias por su ayuda y orientación.

verheesj avatar Sep 13 '12 01:09 verheesj
Aceptado
UPDATE TABLE2
       JOIN TABLE1
       ON TABLE2.SERIAL_ID = TABLE1.SUBST_ID
SET    TABLE2.BRANCH_ID = TABLE1.CREATED_ID;
Tom avatar Sep 12 '2012 18:09 Tom

Además de la respuesta de Tom si necesitas repetir la operación con frecuencia y quieres ahorrar tiempo puedes hacer:

UPDATE TABLE1
       JOIN TABLE2
       ON TABLE1.SUBST_ID = TABLE2.SERIAL_ID
SET    TABLE2.BRANCH_ID = TABLE1.CREATED_ID
WHERE TABLE2.BRANCH_ID IS NULL
RafaSashi avatar Oct 13 '2013 16:10 RafaSashi
UPDATE TABLE2
       JOIN TABLE1
       ON TABLE1.SUBST_ID = TABLE2.SERIAL_ID
SET    TABLE2.BRANCH_ID = TABLE1.CREATED_ID 
WHERE TABLE2.BRANCH_ID IS NULL or TABLE2.BRANCH_ID='';
Mohammad Imran avatar May 26 '2015 06:05 Mohammad Imran