SQL AGGIORNA con i dati di un'altra tabella


Esempio

Gli esempi che seguono riempiono un PhoneNumber di PhoneNumber per qualsiasi dipendente che sia anche un Customer e attualmente non ha un numero di telefono impostato nella tabella dei Employees .

(Questi esempi utilizzano le tabelle Dipendenti e Clienti dai database di esempio.)

SQL standard

Aggiornamento utilizzando una sottoquery correlata:

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

Aggiorna usando 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

server SQL

Aggiornamento con 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