我有两个具有相同表结构的SQLite数据库,我需要使用VB.Net进行查询,但我几乎可以找出任何语法。我想弄清楚如何构建查询字符串?此查询正常工作:
sb = New StringBuilder("SELECT Master.Name, Master.ID, Master.StartDate, Master.Supervisor, Log.LogType, Log.LogComment FROM Master INNER JOIN Log ON Master.ID = Log.ID WHERE date(Log.LogDate) = '")
sb.Append(calendarDate.ToString("yyyy-MM-dd"))
sb.Append("' ORDER BY Master.Name;")
c = New SQLiteCommand(sb.ToString, _Conn)
Using dr As SQLiteDataReader = c.ExecuteReader
...
我还可以使用以下内容“附加”第二个数据库:
sb = New StringBuilder("ATTACH DATABASE '")
sb.Append(outDBPath)
sb.Append("' AS db2;")
c = New SQLiteCommand(sb.ToString, _Conn)
c.ExecuteNonQuery()
c.Dispose()
我的问题是,查询两个数据库的语法是什么?这甚至可能吗?在过去,我使用For ... Next循环,只是将连接从第一个数据库更改为第二个数据库。
答案 0 :(得分:1)
http://www.sqlite.org/lang_attach.html:
可以使用语法引用附加数据库中的表 数据库name.table名。如果表的名称是唯一的 所有附加的数据库以及主数据库和临时数据库,然后是 不需要database-name前缀。如果有两个或更多表 不同的数据库具有相同的名称,并且数据库名称前缀是 没有在表引用上使用,那么选择的表就是表中的一个 最近最少附加的数据库。
因此,您使用db2.Master
来引用附加数据库中的Master
表。