SQLite INNER JOIN与ATTACHed数据库

时间:2013-02-13 20:03:26

标签: vb.net sqlite

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

1 个答案:

答案 0 :(得分:1)

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

  

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

因此,您使用db2.Master来引用附加数据库中的Master表。