表更新时出现SQL语法错误

时间:2009-10-24 18:47:39

标签: sqlite syntax-error sql-update

为什么我在sqlite下的以下SQL语句中出现语法错误?

错误读取:

  

SQL错误:靠近“SET”:语法错误

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

如果我尝试完全限定SET字段名称,则错误变为:

  

SQL错误:靠近“。”:语法错误

1 个答案:

答案 0 :(得分:7)

开头只需要一个SET。您还可以通过将两个表连接在一起并消除子查询来简化查询。

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;