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.
Mi nombre es Fernando Sánchez Ruíz, soy originario de Cortazar, Gto. Ingeniero en Sistemas Computacionales egresado del Instituto Tecnológico de Celaya.
Soy un melómano con especial interés en ska, reggae, punk, rock. Aficionado al Club Deportivo Guadalajara. Veo la comunidad GNU/Linux como una forma de resistencia e intento contribuir a la causa. Me gustan las películas y series de ciencia ficción y/o superheroes.