Maison > base de données > tutoriel mysql > Comment effectuer correctement une requête de mise à jour Oracle avec une jointure intérieure?

Comment effectuer correctement une requête de mise à jour Oracle avec une jointure intérieure?

Barbara Streisand
Libérer: 2025-01-25 04:47:14
original
178 Les gens l'ont consulté

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

Mettez à jour les données Oracle avec la jointure intérieure

L'erreur "SQL Commande non bien terminée" que vous avez rencontrée est parce que j'utilise la syntaxe MySQL au lieu de la syntaxe Oracle. Oracle met à jour les données et utilise la méthode d'Inner Join légèrement différente.

Pour corriger cette erreur, vous pouvez modifier la requête comme suit:

Dans cette requête, la sous-requête du clan SET est exécutée pour chaque ligne du tableau 1, et la valeur de valeur est mise à jour en fonction de la ligne correspondante dans le tableau 2. Où les clauses garantissent qu'ils ne mettent à jour que la ligne.
<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>
Copier après la connexion

ou, vous pouvez essayer la méthode suivante, selon la mise à jour de la vue intérieure associée:

Cette méthode utilise la vue interne de vue pour exécuter la connexion, puis utilise les résultats pour mettre à jour la table de base.
<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>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal