2012-06-10 63 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

相关问题