Aktualisieren Sie Orakeldaten mit innerem Join
Der von Ihnen begegnete Fehler "SQL -Befehl nicht ordnungsgemäß beendet" liegt daran, dass ich MySQL -Syntax anstelle von Oracle -Syntax verwende. Oracle aktualisiert die Daten und verwendet die Methode des inneren Join leicht unterschiedlich.
Um diesen Fehler zu korrigieren, können Sie die Abfrage wie folgt ändern:
In dieser Abfrage wird der Sub -Query im Set -Clan für jede Zeile in Tabelle 1 ausgeführt, und der Wertwert wird gemäß der entsprechenden Zeile in Tabelle2 aktualisiert. Wo Klauseln sicherstellen, dass sie nur die Linie aktualisieren.
<code class="language-sql">UPDATE table1 SET table1.value = ( SELECT table2.CODE FROM table2 WHERE table1.value = table2.DESC ) WHERE table1.UPDATETYPE = 'blah' AND EXISTS ( SELECT table2.CODE FROM table2 WHERE table1.value = table2.DESC );</code>
Oder können Sie die folgende Methode ausprobieren, abhängig von der Aktualisierung der inneren zugehörigen Ansicht:
Diese Methode verwendet die interne Ansichtsansicht, um die Verbindung auszuführen und dann die Ergebnisse zu aktualisieren, um die grundlegende Tabelle zu aktualisieren.
<code class="language-sql">UPDATE ( SELECT table1.value AS OLD, table2.CODE AS NEW FROM table1 INNER JOIN table2 ON table1.value = table2.DESC WHERE table1.UPDATETYPE = 'blah' ) t SET t.OLD = t.NEW;</code>
Das obige ist der detaillierte Inhalt vonWie führe ich eine Oracle -Update -Abfrage mit einem inneren Join richtig durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!