Ошибка синтаксиса SQL при обновлении таблицы - PullRequest
2 голосов
/ 24 октября 2009

Почему я получаю синтаксическую ошибку для следующего оператора SQL в sqlite?

Ошибка чтения:

Ошибка 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 Ответ

7 голосов
/ 24 октября 2009

Вам нужен только один 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...