Verwenden von SQL zum Aktualisieren von Oracle-Tabellendaten aus einer anderen Tabelle
Bei der relationalen Datenbankverwaltung ist es häufig erforderlich, Daten in einer Tabelle mithilfe von Werten aus einer anderen Tabelle zu aktualisieren. Dies kann mit der SQL UPDATE-Anweisung erreicht werden.
Szene:
Betrachten Sie zwei Tabellen, Tabelle 1 und Tabelle 2, die die folgenden Daten enthalten:
<code>表 1: id name desc ----------------------- 1 a abc 2 b def 3 c adf 表 2: id name desc ----------------------- 1 x 123 2 y 345</code>
Ziel:
Aktualisieren Sie Tabelle 1 mit den Spalten „name“ und „desc“ aus Tabelle 2, wenn die ID-Spalten in beiden Tabellen übereinstimmen. Die erwarteten Ergebnisse sind wie folgt:
<code>表 1: id name desc ----------------------- 1 x 123 2 y 345 3 c adf</code>
Option 1: Verwandte Updates
In Oracle SQL sind entsprechende Updates verfügbar:
<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>
Anleitung:
Diese Abfrage führt eine Aktualisierung von Tabelle1 durch und verwendet eine Unterabfrage, um die entsprechenden Namens- und Desc-Werte aus Tabelle2 basierend auf der übereinstimmenden ID abzurufen. Die WHERE EXISTS-Klausel stellt sicher, dass nur Zeilen in Tabelle1 aktualisiert werden, die übereinstimmende Zeilen in Tabelle2 haben.
Option 2: JOIN-basiertes Update
Angenommen, dass das durch den Join erzeugte Ergebnis die Schlüssel beibehält, kann die folgende Aktualisierungsanweisung verwendet werden:
<code class="language-sql">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</code>
Anleitung:
Diese Abfrage führt eine Aktualisierung der Join-Ansicht durch und aktualisiert effektiv die Namens- und Desc-Spalten von Tabelle1 auf die Werte, die mit der entsprechenden ID in Tabelle2 übereinstimmen.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich Oracle-Tabellendaten aus einer anderen Tabelle mithilfe von SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!