Oracle SQL: Aktualisieren einer Tabelle mit Daten aus einer anderen Tabelle
Tabelle 1:
id name desc
-----------------------
1 a abc
2 b def
3 c adf
Tabelle 2:
id name desc
-----------------------
1 x 123
2 y 345
Wie führe ich in Oracle SQL eine sql update-Abfrage aus, die Tabelle 1 mit "Name" und "Description" von Tabelle 2 unter Verwendung derselben "ID" aktualisiert? Das Endergebnis würde also lauten
Tabelle 1:
id name desc
-----------------------
1 x 123
2 y 345
3 c adf
Die Frage stammt von https://stackoverflow.com/questions/5036918/sql-update-query-with-data-from-another-table, aber speziell für Oracle SQL.
232
3
Dies wird als korrelierte Aktualisierung bezeichnet.
Unter der Annahme, dass die Verknüpfung zu einer schlüsselgesicherten Ansicht führt, könnten Sie auch
Versuchen Sie
Hier scheint eine noch bessere Antwort mit 'in' Klausel zu sein, die mehrere Schlüssel für die Verbindung ermöglicht:
Das vollständige Beispiel finden Sie hier: http://forums.devshed.com/oracle-development-96/how-to-update-from-two-tables-195893.html
Das Problem besteht darin, dass Sie die Spalten, die Sie als Schlüssel verwenden wollen, in der where-Klausel vor 'in' in Klammern setzen und die select-Anweisung mit denselben Spaltennamen in Klammern setzen. where (Spalte1,Spalte2) in ( select (Spalte1,Spalte2) from table where "die gewünschte Menge" );