Tabla de actualización de MySQL basada en el valor de otra tabla
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.
Aceptado
UPDATE TABLE2
JOIN TABLE1
ON TABLE2.SERIAL_ID = TABLE1.SUBST_ID
SET TABLE2.BRANCH_ID = TABLE1.CREATED_ID;
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
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='';