SQL ACTUALIZAR con datos de otra tabla


Ejemplo

Los ejemplos a continuación completan un PhoneNumber de PhoneNumber para cualquier empleado que también sea Customer y que actualmente no tenga un número de teléfono configurado en la Tabla de Employees .

(Estos ejemplos utilizan las tablas Empleados y Clientes de las Bases de datos de ejemplo).

SQL estándar

Actualización utilizando una subconsulta correlacionada:

UPDATE 
    Employees
SET PhoneNumber =
    (SELECT 
         c.PhoneNumber
     FROM 
         Customers c
     WHERE 
         c.FName = Employees.FName 
         AND c.LName = Employees.LName)
WHERE Employees.PhoneNumber IS NULL

SQL: 2003

Actualizar utilizando MERGE :

MERGE INTO 
    Employees e
USING 
    Customers c 
ON 
    e.FName = c.Fname 
    AND e.LName = c.LName
    AND e.PhoneNumber IS NULL
WHEN MATCHED THEN
   UPDATE 
      SET PhoneNumber = c.PhoneNumber

servidor SQL

Actualizar usando INNER JOIN :

UPDATE 
    Employees
SET 
    PhoneNumber = c.PhoneNumber
FROM 
    Employees e
INNER JOIN Customers c
        ON e.FName = c.FName 
        AND e.LName = c.LName
WHERE 
    PhoneNumber IS NULL