我有一个数据库A.db
,其中包含表t1
,t2
和t3
。
现在,我想创建一个新数据库B.db
,其中包含t1
以及从col1
中选择的一些列col4
和t2
。
使用.import
时,我会遇到数百个错误,而且似乎只适用于完整表。
.output
听起来就像我只是保存输出那样打印。
基本上,我需要在不同文件中使用insert into foo select ...
。我该怎么办?
答案 0 :(得分:1)
首先,您必须将A.db
附加到当前数据库,并为其命名,例如adb
。
然后,就像所有表都存在于同一数据库中一样,编写插入语句,并使用数据库别名来限定列名。
最好在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>
,以使要插入到foo
的行成为类似的内容,
adb.t1.id = adb.t2.id