2012-06-10 59 views
1

我有2個sqlite數據庫,我試圖從一個數據庫插入數據到另一個。例如,「db-1.sqlite」有一個包含2列('name','state')的表'1table'。此外,「db-2.sqlite」有一個包含2列('name','url')的表'2table'。兩個表都包含一個「名稱」值列表,這些值大多數是相同的,但是是隨機的,所以每行的ID不匹配。sqlite數據從一個數據庫到另一個

我想插入值「網址」列到DB-1的表,但我想確保每個URL值進入其相應的「名」的價值。

到目前爲止,我已經做到了這一點:

> 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

相關問題