Heim >Datenbank >MySQL-Tutorial >Wie führe ich eine Oracle -Update -Abfrage mit einem inneren Join richtig durch?

Wie führe ich eine Oracle -Update -Abfrage mit einem inneren Join richtig durch?

Barbara Streisand
Barbara StreisandOriginal
2025-01-25 04:47:14218Durchsuche

How to Correctly Perform an Oracle UPDATE Query with an INNER JOIN?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn