Maison > base de données > tutoriel mysql > Comment effectuer correctement une requête de mise à jour avec Inner Join in Oracle?

Comment effectuer correctement une requête de mise à jour avec Inner Join in Oracle?

Susan Sarandon
Libérer: 2025-01-25 04:50:09
original
274 Les gens l'ont consulté

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

Dans l'Oracle, utilisez la jointure intérieure pour exécuter correctement la requête de mise à jour

Les requêtes suivantes dans MySQL peuvent être exécutées avec succès:

Cependant, la même requête dans Oracle provoquera les erreurs suivantes:
<code class="language-sql">UPDATE table1
INNER JOIN table2 ON table1.value = table2.DESC
SET table1.value = table2.CODE
WHERE table1.UPDATETYPE='blah';</code>
Copier après la connexion

Solution
<code>SQL错误:ORA-00933:SQL命令未正确结束
00933. 00000 -  "SQL command not properly ended"</code>
Copier après la connexion

La syntaxe utilisée dans la requête n'est pas valide dans Oracle. Afin de respecter les résultats attendus, vous pouvez utiliser l'une des méthodes suivantes:

La première méthode

Cette méthode utilise la sous-femerie pour obtenir la valeur de mise à jour du tableau 1.Value en fonction des conditions de connexion. Il garantit que seule la ligne de correspondance est mise à jour.

La deuxième méthode
<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

Cette méthode utilise un diagramme de liaison interne mis à jour pour exécuter la mise à jour. Il faut Oracle pour penser que la vue de liaison interne est mise à jour, en fonction de certaines règles.

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