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.
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 );
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.
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;
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!