Je n'ai aucune idée du problème. En utilisant MySQL 5.0, j'obtiens une erreur de compilation lors de la tentative d'exécution de l'instruction de mise à jour MYSQL suivante
UPDATE b
SET b.mapx = g.latitude,
b.mapy = g.longitude
FROM business AS b
INNER JOIN business_geocode g ON b.business_id = g.business_id
WHERE (b.mapx = '' or b.mapx = 0) and
g.latitude > 0
tous les noms de champs sont corrects. Des pensées?
Réponses:
Essaye ça:
Mettre à jour:
Puisque vous avez dit que la requête a généré une erreur de syntaxe, j'ai créé des tables sur lesquelles je pouvais le tester et j'ai confirmé qu'il n'y avait aucune erreur de syntaxe dans ma requête:
Voir? Aucune erreur de syntaxe. J'ai testé contre MySQL 5.5.8.
la source
show create table business;
etshow create table business_geocode;
ainsi je pourrai tester ma requête un peu mieux. Merci.AS
mot clé est facultatif. Mais comme vous l'avez mentionné, je l'ai ajouté à la réponse par souci de cohérence, car je l'ai utilisé sur le premier alias de la même requête.La
SET
clause doit venir après la spécification de table.la source
Pour MySql WorkBench, veuillez utiliser ci-dessous:
la source