Usar inner join dentro de un update.

Es un hechizo simple pero inquebrantable.

Dr. Strange

Estamos en la situación que tenemos una tabla (Locations) en la que debemos actualizar un campo (quantity) sin embargo la clausula que vamos a usar hace referencia a un campo (code) de otra tabla (Products), obviamente estas dos tablas tienen relación mediante una foreign key (id_product).
Una opción podría ser obtener la fk (Foreign key) ‘id’ que necesitamos de la tabla (Products) con el campo ‘code’ y luego hacer el update en la tabla que necesitamos, sin embargo es muy fastidioso y poco practico.
La mejor opción que tenemos en usar un join en el update, a continuación la consulta.

Es un query sencillo pero útil:

update locations l 
inner join products p on l.id_product=p.id 
set l.quantity=@quantity
where p.code = @code;

 

Se pueden actualizar los campos de todas las tablas que se encuentran en el inner join y se pueden usar los join: right, letf, etc. Sin duda una opción de gran ayuda para actualizar campos de mas de una tabla a la vez o utilizando en clausula un campo de otra tabla.

 

 

Deja un comentario

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