Erreur de syntaxe SQL lors de la mise à jour de la table
-
06-07-2019 - |
Question
Pourquoi ai-je une erreur de syntaxe dans l'instruction SQL suivante sous sqlite?
L'erreur lit:
Erreur SQL: près de "SET": erreur de syntaxe
UPDATE nova
SET Nome = (select Nome from assessores where nova.ID = assessores.ID),
SET Morada = (select Morada from assessores where nova.ID = assessores.ID),
SET Email = (select Email from assessores where nova.ID = assessores.ID),
SET TelfCasa = (select TelfCasa from assessores where nova.ID = assessores.ID),
SET TelfEmprego = (select TelfEmprego from assessores where nova.ID = assessores.ID),
SET Telemovel = (select Telemovel from assessores where nova.ID = assessores.ID),
SET Fax = (select Fax from assessores where nova.ID = assessores.ID)
WHERE EXISTS (select * from assessores where nova.ID = assessores.ID);
Si j'essaie de qualifier complètement les noms de champs SET, l'erreur devient:
Erreur SQL: près de ". ": erreur de syntaxe
La solution
Vous n'avez besoin que d'un seul SET
au début. Vous pouvez également simplifier la requête en joignant les deux tables et en éliminant les sous-requêtes.
UPDATE nova JOIN assessores ON nova.ID = assessores.ID
SET nova.Nome = assessores.Nome,
nova.Morada = assessores.Morada,
nova.Email = assessores.Email,
nova.TelfCasa = assessores.TelfCasa,
nova.TelfEmprego = assessores.TelfEmprego,
nova.Telemovel = assessores.Telemovel,
nova.Fax = assessores.Fax;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow