Heim > Datenbank > MySQL-Tutorial > Wie kann ich die Daten einer Oracle-Tabelle mithilfe von Werten aus einer anderen Tabelle aktualisieren?

Wie kann ich die Daten einer Oracle-Tabelle mithilfe von Werten aus einer anderen Tabelle aktualisieren?

Susan Sarandon
Freigeben: 2025-01-22 02:52:13
Original
892 Leute haben es durchsucht

How Can I Update an Oracle Table's Data Using Values from Another Table?

Oracle SQL: Tabellendaten mithilfe von Werten aus einer anderen Tabelle aktualisieren

Häufig erfordert die Datenbankverwaltung die Aktualisierung der Daten einer Tabelle mit Werten aus einer anderen. Lassen Sie uns dies anhand von zwei Beispieltabellen veranschaulichen:

Tabelle 1:

<code>id    name    desc
-----------------------
1     a       abc
2     b       def
3     c       adf</code>
Nach dem Login kopieren

Tabelle 2:

<code>id    name    desc
-----------------------
1     x       123
2     y       345</code>
Nach dem Login kopieren

Unser Ziel ist es, die Spalten Table 1 und name von desc mit Daten aus Table 2 zu aktualisieren, die mit der Spalte id übereinstimmen. Das gewünschte Ergebnis:

Tabelle 1 (aktualisiert):

<code>id    name    desc
-----------------------
1     x       123
2     y       345
3     c       adf</code>
Nach dem Login kopieren

Oracle SQL bietet effiziente Methoden für diese Art von korreliertem Update:

Methode 1: Korrelierte Unterabfrage

Dieser Ansatz verwendet eine korrelierte Unterabfrage innerhalb der UPDATE-Anweisung:

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 );
Nach dem Login kopieren

Diese Abfrage aktualisiert jede Zeile in Table 1, in der ein passendes id in Table 2 vorhanden ist.

Methode 2: Verwenden eines Common Table Expression (CTE)

Alternativ bietet ein CTE eine sauberere Lösung, wenn der Join eine schlüsselerhaltende Ansicht erstellt:

UPDATE (SELECT t1.id, 
               t1.name name1,
               t1.desc desc1,
               t2.name name2,
               t2.desc desc2
          FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id)
   SET name1 = name2,
       desc1 = desc2;
Nach dem Login kopieren

Diese Methode erstellt eine temporäre Ansicht (unter Verwendung eines CTE), die relevante Felder aus beiden Tabellen kombiniert, und führt dann die Aktualisierung dieser Ansicht durch.

Beide Methoden aktualisieren effektiv Table 1 basierend auf Daten in Table 2 und demonstrieren flexible Techniken zur Datenbearbeitung in Oracle SQL.

Das obige ist der detaillierte Inhalt vonWie kann ich die Daten einer Oracle-Tabelle mithilfe von Werten aus einer anderen Tabelle aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage