Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Daten einer Oracle-Tabelle mithilfe von Werten aus einer anderen Tabelle aktualisieren?
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>
Tabelle 2:
<code>id name desc ----------------------- 1 x 123 2 y 345</code>
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>
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:
<code class="language-sql">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 );</code>
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:
<code class="language-sql">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;</code>
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!