1

我有两个具有相同表结构的 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 循环,只是将连接从第一个数据库更改为第二个。

4

1 回答 1

1

http://www.sqlite.org/lang_attach.html

可以使用语法 database-name.table-name 来引用附加数据库中的表。如果表的名称在所有附加数据库以及主数据库和临时数据库中是唯一的,则不需要数据库名称前缀。如果不同数据库中的两个或多个表具有相同的名称,并且在表引用中未使用 database-name 前缀,则选择的表是数据库中最近最少附加的表。

所以你db2.Master用来引用Master附加数据库中的表。

于 2013-02-13T20:06:38.620 回答