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>
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>
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!