SQLite 跨库查询【跨数据库】
- 场景:数据库A和数据库B的表之间有参照,需要跨数据库做查询操作...
- 方案:用SQLite解释器中的提供的 ATTACH [DATABASE]
关键字完成数据库附加:
ATTACH DATABASE[Database Path] AS [Alias];
- [Database Path]:
i.绝对路径;
ii.相对路径,即要附加的数据库与当前维持连接数据库的相对地址。
-[Alias] :
附加数据库的别名。 - 查询:查询时加上[数据库别名]即可 :
SELECT* FROM DB_ Alias.TABLE_Name WHERE ...; - 例子:现在维持连接的数据库称为A(可省略),其中表Ta中的字段id_b与位于路径"d:\B.db"的数据库(别名B)中Tb表字段id有参照,查询条件即"A.Ta.id_b = B.Tb.id":
ATTACH DATABASE"d:\B.db" AS "B" ;
SELECT* FROM Ta , B.Tb WHERE Ta.id_b = B.Tb.id ;
PS . 如果维持连接的数据库A与要附加的数据库B( B.db)在同一路径下,附加语句可写为:
ATTACH DATABASE"B.db" AS "B" ;
PS . 发现win7下相对路径会默认为程序运行路径,xp下会默认为数据库已有连接路径,需要注意。