sqlite-将表和列的子集复制到新的db文件中

sqlite-将表和列的子集复制到新的db文件中,sqlite,Sqlite,我有一个数据库a.db,其中包含表t1、t2和t3。 现在我想创建一个新的数据库B.db,它包含t1和一些从t2中选择的列col1和col4 使用.import我会收到数百个错误,而且似乎只对完整的表有效 .output听起来好像我只是将输出保存为打印时的样子 基本上,我需要在不同的文件中插入一个到fooselect…。我如何才能做到这一点?首先,您必须将A.db附加到当前数据库,并给它一个别名,如adb 然后编写insert语句,就像在同一数据库中存在所有表一样,使用数据库别名限定列名。 在i

我有一个数据库
a.db
,其中包含表
t1
t2
t3
。 现在我想创建一个新的数据库
B.db
,它包含
t1
和一些从
t2
中选择的列
col1
col4

使用
.import
我会收到数百个错误,而且似乎只对完整的表有效

.output
听起来好像我只是将输出保存为打印时的样子


基本上,我需要在不同的文件中插入一个
到fooselect…
。我如何才能做到这一点?

首先,您必须将
A.db
附加到当前数据库,并给它一个别名,如
adb

然后编写insert语句,就像在同一数据库中存在所有表一样,使用数据库别名限定列名。

insert-into…
语句的括号内包含表
foo
的所有列名是一种很好的做法,您可以为这些列名设置其他两个表中的值,但也要确保列的顺序与选择列表中列的顺序相同:

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>
adb.t1.id = adb.t2.id