Saltar al contenido
Lacodigoteca.com

UPDATE INNER JOIN – Explicación paso a paso

UPDATE con varios JOIN

En otras ocasiones, he tenido que realizar múltiples UPDATE de datos de algunas tablas. Normalmente son sentencias sencillas de realizar, pero a veces necesitamos condiciones de otras tablas. Y te habrás parado a pensar en que, ¿existe alguna manera de actualizar datos de una tabla aplicando unas condiciones de otras tablas?

Respuesta: Por supuesto que si, usted puede aplicar una sentencia UPDATE a una tabla cumpliendo condiciones a partir de otras tablas.

¿Cómo hacer un UPDATE INNER JOIN?

El objetivo de este POST es que utilizando filtros de otras tablas, mediante la relación de tablas con JOIN, hemos tenido que añadir datos de un campo de una tabla origen y copiarlo en otra tabla destino.

Te voy a mostrar paso a paso, cómo hacer un UPDATE INNER JOIN de una manera tan sencilla. Para ello, te voy a mostrar una estructura de los datos de ejemplo:

Si tienes dudas de cómo funciona los JOIN, te dejo el siguiente enlace:

https://docs.microsoft.com/en-us/sql/relational-databases/performance/joins?view=sql-server-ver15

Este ejemplo se puede hacer con:

UPDATE INNER JOIN SQL Server
UPDATE INNER JOIN MYSQL

Escenario: Se trata de una compra de aplicaciones, en la que tenemos que relacionar estas 3 tablas entre sí.

Tablas

APLICACIÓN

  • ID: Identificador de la aplicación.
  • NOMBRE: Nombre de la aplicación.

USUARIOS

  • ID: Identificador del usuario.
  • USUARIO: Alias del usuario.
  • ESTADO: Estado actual del usuario (Alta/Baja).

ORDENES

  • ID: Identificador de la orden del pedido.
  • ESTADO: Estado actual del pedido.
  • IDUSUARIO: Usuario asociado al pedido.
  • IDAPLICACION: Aplicación asociada al pedido.
UPDATE o
SET o.estado='Anulado'
FROM ordenes o
JOIN aplicacion a ON o.idaplicacion=a.id 
JOIN usuarios u ON u.id=o.idusuario
WHERE o.estado NOT IN ('Pendiente','Alta') AND u.estado='Baja';

Has visto que es muy parecido a la hora de hacer JOIN con SELECT, pero con un pequeño detalle y es que en el update llamamos a la tabla mediante un alias.

Recomendable: Crear primero el SELECT con los INNER JOIN para ver qué datos vamos a actualizar el UPDATE INNER JOIN, te puedes ahorrar más de un susto xD

Si quieres ver más artículos relacionados con SQL, te recomiendo que sigas al siguiente enlace:

https://lacodigoteca.com/sql/

Settings
A %d blogueros les gusta esto: