2009-10-24 5 views
1

sqlite에서 다음 SQL 문에서 구문 오류가 발생하는 이유는 무엇입니까?테이블 업데이트시 SQL 구문 오류

오류 읽기 : 나는 완전히 SET 필드 이름을 한정하려고하면

SQL Error: near "SET": syntax error

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

는 오류가된다 :

SQL Error: near ".": syntax error

답변

6

당신은 시작에 불과 하나 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; 
+0

DOH! 존 감사합니다. –

+0

당신은'SET'의 사용법에 대해 옳았습니다. 그러나 SQLite가 다중 테이블'UPDATE' 구문을 지원한다고 생각하지 않습니다. MySQL 구문을 보여줍니다. –

+0

그것은 그것을 지원합니다. 그건 문제가 아니야. SQL을 마지막으로 사용한 이후로 SQLite 문서 (http://www.sqlite.org/lang_update.html)에서 구문을 살펴보면 SET가 필드 = 값주기의 일부가 아닌 사실을 완전히 알 수 없었습니다. –

0

Sqllite 사이트는 SQL 참조 서를 포함하여 설명서를 제공합니다. UPDATE here의 구문을 찾으십시오.