2014-07-17 6 views
0

다른 테이블의 정보를 사용하여 테이블을 업데이트하려고합니다. 업데이트하고 싶은 테이블을 YVDtemp라고하고 두 번째 테이블에서 정보를 가져 오는 테이블을 yvs_textsMain이라고합니다. 또한 3 번째 테이블을 사용하여 필자가 가지고 있지 않은 레코드를 찾았고이 테이블을 YVD라고합니다. 여기 내 업데이트 성명서입니다.하위 쿼리를 사용하여 업데이트 문을 수행하는 방법은 무엇입니까?

update Yvdtemp 
set 
NAME = yvd_textsmain.[name] 
SPIC = yvd_textsmain.[rname] 
EFFECT = yvd_textsmain.[desc] 
where exists (
select yvd_textsMain.[name], yvd_textsMain.[rname], yvd_textsMain.[desc] 
from YVD_textsMain 
left outer join YVD 
on (YVD_textsMain.[rname] = yvd.[spic]) 
where yvd.[spic] is null); 

이 문장은 작동하지 않는 것으로 보입니다. 그것은 저에게 "가까운 'spic'오류를 제공합니다 : 구문 오류 하지만, 선택 문을 사용하여 선택 문을 작동하지 않고 선택 문을 사용하면 YVD 테이블 및 해당 정보가없는 모든 정보를 얻을 업데이트 문에서 행을 매핑하는 방법 Yvdtempyvd_textsmain 사이의 일치 조건이 없기 때문에 YVDTemp 테이블로 전달합니다. 내가 SQLite는 사용하고

.

+0

는'NAME = yvd_textsmain해야한다 [이름], SPIC = yvd_textsmain [RNAME, 효과 = yvd_textsmain... [desc]' – Deepshikha

답변

0

를 그리워. 요구 사항을 기반으로합니다. 당신은 같이 쓸 수있는 Insert 명령 찾고 있습니다 : 당신이 열 사이에 쉼표를 누락

INSERT INTO Yvdtemp (NAME, SPIC, EFFECT) 
Select yvd_textsMain.[name], yvd_textsMain.[rname], yvd_textsMain.[desc] 
from YVD_textsMain 
left outer join YVD 
on (YVD_textsMain.[rname] = yvd.[spic]) 
where yvd.[spic] is null 
+0

모두 감사합니다. – user3128770

0

을 당신은 쉼표를

NAME = yvd_textsmain.[name], 
SPIC = yvd_textsmain.[rname], 
EFFECT = yvd_textsmain.[desc] 
관련 문제