Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle SQL:Aktualisieren Sie eine Tabelle mit Daten aus einer anderen Tabelle

Dies wird als korreliertes Update bezeichnet

UPDATE table1 t1
   SET (name, desc) = (SELECT t2.name, t2.desc
                         FROM table2 t2
                        WHERE t1.id = t2.id)
 WHERE EXISTS (
    SELECT 1
      FROM table2 t2
     WHERE t1.id = t2.id )

Unter der Annahme, dass die Verknüpfung zu einer Ansicht mit Schlüsselerhaltung führt, könnten Sie dies auch tun

UPDATE (SELECT t1.id, 
               t1.name name1,
               t1.desc desc1,
               t2.name name2,
               t2.desc desc2
          FROM table1 t1,
               table2 t2
         WHERE t1.id = t2.id)
   SET name1 = name2,
       desc1 = desc2