2012-06-10 3 views
1

나는 2 개의 sqlite 데이터베이스를 가지고 있으며 한 데이터베이스에서 다른 데이터베이스로 데이터를 삽입하려고합니다. 예를 들어 "db-1.sqlite"에는 2 개의 열 ('name', 'state')이있는 테이블 '1table'이 있습니다. 또한 "db-2.sqlite"에는 2 개의 열 ('name', 'url')이있는 테이블 '2 테이블'이 있습니다. 두 테이블 모두 '이름'값의 목록을 포함하는데,이 목록은 서로 공통이지만 무작위로 할당되므로 각 행의 ID가 일치하지 않습니다.하나의 데이터베이스에서 다른 데이터베이스로의 sqlite 데이터

'url'열에 대한 값을 db-1의 테이블에 삽입하고 싶지만 각 URL 값이 해당 'name'값으로 이동하도록하고 싶습니다.

지금까지,이 짓을 : 이제

> sqlite3 db-1.sqlite 
sqlite> alter table 1table add column url; 
sqlite> attach database 'db-2.sqlite' as db2; 

, 나는 확실하지 않다 부분 : 당신은 내가 위에 쓴 보면

sqlite> insert into 1table(url) select db2.2table.url from db2.2table where 1table.name==db2.2table.name 

, 당신은 말할 수 내가 성취하려고 노력하고있는 것이지만 그것은 부정확합니다. 이 문제에 대한 도움을받을 수 있다면 매우 감사 할 것입니다 !!

답변

5

SQL의 동등 비교 연산자는 이 아닌 =입니다.

또한, 필자는 1table을 업데이트해야한다고 생각합니다.

마지막으로 테이블 이름은 숫자로 시작하므로 이스케이프 처리해야합니다.

이 SQL은 잘 작동한다 :

update `1table` 
set url = (select db2.`2table`.url 
      from db2.`2table` 
      where `1table`.name = db2.`2table`.name); 
+0

독창적 인! 나는 SQL에 익숙하지 않다. 도와 주셔서 정말 감사합니다! – m10zart

관련 문제