Verwenden von SQL zum Aktualisieren einer Oracle-Tabelle mit Daten von einer anderen
Oracle SQL bietet effiziente Methoden zum Aktualisieren einer Tabelle mit Daten aus einer anderen. Dies kann durch korrelierte Aktualisierungen oder alternative Syntax erreicht werden.
Lassen Sie uns anhand von Beispieltabellen veranschaulichen:
<code class="language-sql">Table 1: id | name | description ----------------------- 1 | a | abc 2 | b | def 3 | c | adf</code>
<code class="language-sql">Table 2: id | name | description ----------------------- 1 | x | 123 2 | y | 345</code>
Methode 1: Korrelierte Unterabfrageaktualisierung
Dieser Ansatz verwendet eine korrelierte Unterabfrage, um passende Daten von Table 2
für jede Zeile in Table 1
:
<code class="language-sql">UPDATE table1 t1 SET (name, description) = (SELECT t2.name, t2.description FROM table2 t2 WHERE t1.id = t2.id) WHERE EXISTS ( SELECT 1 FROM table2 t2 WHERE t1.id = t2.id );</code>
Die WHERE EXISTS
-Klausel stellt sicher, dass nur Zeilen mit übereinstimmenden IDs in beiden Tabellen aktualisiert werden.
Methode 2: Alternative Syntax mit einer Unterabfrage
Diese Methode verwendet eine Unterabfrage, um eine temporäre Ansicht zu erstellen, die beide Tabellen kombiniert, und aktualisiert dann diese Ansicht:
<code class="language-sql">UPDATE (SELECT t1.id, t1.name name1, t1.description desc1, t2.name name2, t2.description desc2 FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id) SET name1 = name2, desc1 = desc2;</code>
Dieser Ansatz nutzt ein JOIN
, um die Tabellen effizient zu kombinieren. Das Update ändert dann die ausgewählten Spalten (name1
, desc1
) basierend auf den entsprechenden Spalten aus Table 2
(name2
, desc2
). Die Spalte id
dient als Verknüpfungsschlüssel und gewährleistet genaue Aktualisierungen von Table 1
.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von SQL eine Oracle-Tabelle mit Daten aus einer anderen Tabelle aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!