Verwenden Sie im Oracle den inneren Join, um die Aktualisierungsabfrage
korrekt auszuführen Die folgenden Abfragen in MySQL können erfolgreich ausgeführt werden:
Die gleiche Abfrage in Oracle verursacht jedoch die folgenden Fehler:
<code class="language-sql">UPDATE table1 INNER JOIN table2 ON table1.value = table2.DESC SET table1.value = table2.CODE WHERE table1.UPDATETYPE='blah';</code>
Lösung
<code>SQL错误:ORA-00933:SQL命令未正确结束 00933. 00000 - "SQL command not properly ended"</code>
Die in der Abfrage verwendete Syntax ist in Oracle ungültig. Um die erwarteten Ergebnisse zu erfüllen, können Sie eine der folgenden Methoden verwenden:
Die erste Methode
Diese Methode verwendet sub -query, um den Aktualisierungswert von Tabelle 1 zu erhalten. Wert gemäß den Verbindungsbedingungen. Es stellt sicher, dass nur die passende Zeile aktualisiert wird.
Die zweite Methode<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>
Diese Methode verwendet ein aktualisiertes internes Verknüpfungsdiagramm, um das Update auszuführen. Es erfordert Oracle, dass die interne Verknüpfungsansicht abhängig von bestimmten Regeln aktualisiert wird.
Das obige ist der detaillierte Inhalt vonWie führe ich eine UPDATE-Abfrage mit INNER JOIN in Oracle korrekt durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!