Actualizar registros mediante Subquery en mariadb

En este caso, tomamos como ejemplo una tabla «log_consumos» de una base de datos hotelera que contiene tres claves foráneas: con_id, alo_id y res_id, que corresponden al id de una tabla consumo, el id de una tabla alojamiento y el id de una tabla reservas respectivamente. Sucede que los campos alo_id y res_id se han agregado recién a la tabla log_consumo y queremos agregar datos a los campos alo_id y res_id que también tiene la tabla «consumo», todo en relación al campo con_id. Para actualizar registros en estos campos usamos la siguiente sentencia:

UPDATE log_consumos AS lc 
INNER JOIN (SELECT l.con_id,c.alo_id,c.res_id FROM log_consumos AS l INNER JOIN consumo AS c ON l.con_id=c.con_id WHERE l.alo_id IS NULL) AS sq ON lc.con_id=sq.con_id 
SET lc.alo_id=sq.alo_id, lc.res_id =sq.res_id 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *