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

Était-ce utile?

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
scroll top