我有一个数据库A.db
,其中包含t1
、t2
和t3
表。 现在我想创建一个新的数据库B.db
,其中包含t1
和一些选定的列col1
和col4
来自t2
。
有了.import
,我得到了数百个错误,它似乎仅适用于完整的表。
.output
听起来我只是将输出保存为打印输出。
基本上,我需要跨不同文件insert into foo select ...
。我该怎么做?
首先,您必须将A.db
附加到当前数据库并为其指定一个别名,例如adb
。
然后编写 insert 语句,就像所有表都存在于同一个数据库中一样,使用数据库别名限定列名。
最好在insert into...
语句的括号内包含表的所有列名,foo
要从其他 2 个表中设置值,但也要确保列的顺序与选择列表中列的顺序相同:
attach database 'pathtoAdatabase/A.db' as adb;
insert into foo (column1, column2, .......)
select adb.t1.column1, adb.t1.column2, ...., adb.t2.col1, adb.t2.col4
from adb.t1 inner join adb.t2
on <join condition>
将<join condition>
替换为您将连接 2 个表的条件,以使您将插入foo
的行,如下所示:
adb.t1.id = adb.t2.id