2017-11-21 8 views
0

나는 이전 테이블과 새 테이블을 가지고 있습니다. 내가 필요한 것은 이전 테이블의 uuId를 새로운 테이블로 복사하는 것입니다.SQLite : 다른 테이블에서 열 업데이트

메신저 다른 참고 문헌에서 몇 가지 답변을 따르지만 나는 이상적인 대답을 얻을 수 없습니다.

내가 찾은 가장 가까운 답

은 이것이다 :이 쿼리를 실행할 때

update table1 
set table1.uuid = 
(select table2.uuid from table2 where table1.itemDescription = table2.itemDescription) 

, 그것은 단지 1 일 새 테이블에있는 모든 항목을 이전 테이블의 UUID를 발견 저장합니다.

샘플 표 2 (기존 테이블) :

uuid|itemDescription 
    1|item1 
    2|item2 
    3|item3 

샘플 표 (새 테이블) :

uuid|itemDescription 
Null|item1 
Null|item2 
Null|item3 

원하는 출력 :

uuid|itemDescription 
    1|item1 
    2|item2 
    3|item3 

무슨 :

uuid|itemDescription 
    1|item1 
    1|item2 
    1|item3 
을 0
+0

'table2.uuid'에'table2.uuid'를'UPDATE '복사하십시오. 그러나 샘플 데이터는'table2.uuid'에 값이 없습니다. 더욱이,'itemDescription'은 두 테이블 모두에서 일치하지 않습니다. –

+0

좋은 하루 되세요, 죄송합니다. 올바른 것으로 편집하십시오. 표 2는 첫 번째 표본이라고 가정합니다. 이드가있는 사람. 새로운 테이블은 ID가없는 테이블로 간주됩니다. –

답변

0

SQLite는에서 외부 쿼리에서 항목 설명을 연결해야합니다, 당신은 SET 절에 테이블 이름을 사용해서는 안 :

update table1 
set uuid = 
(select table2.uuid from table2 where table1.itemDescription = table2.itemDescription); 
+0

많은 감사합니다. 나는 또한 어제 그것을 발견했습니다. 내 쿼리에는 무엇이 잘못되었지만 이미 그것을 게시 할 수 있도록 게시했습니다. 많은 감사. –

-1

는 다음과 같이하십시오 :

UPDATE table1 
SET table1.uuid = table2.uuid 
FROM table2 WHERE table1.itemDescription = table2.itemDescription 

하위 쿼리에 대한 필요가 없습니다, 그렇지 않으면 당신은 또한

+0

보낸 사람 근처에 오류가 발생합니다. 메신저를 사용 중입니다. 그리고 나는 이미이 대답을 조금 전에 얻었습니다. T. –