如何在一个查询中INNER JOIN 2或3个具有相同表的不同数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在一个查询中INNER JOIN 2或3个具有相同表的不同数据库相关的知识,希望对你有一定的参考价值。

我试图用同一个表搜索来自不同数据库的数据。而不是做长切查询,我怎么能在单个查询中INNER加入2个不同的数据库。谢谢。

Set db = OpenDatabase(DbName, False, True, "MS Access;PWD=1234")
Set rs = db.OpenRecordset("SELECT * AVAILABLE_STAFF WHERE staff_id = '" & Search_ID & "'", dbOpenSnapshot, dbOptimistic)

With rs
    If .RecordCount = 0 Then
    Else
       'INSERT DATA TO LISTVIEW
    End If
End With

rs.Close
Set rs = Nothing

db.Close
Set db = Nothing

Set db = OpenDatabase(DbName1, False, True, "MS Access;PWD=1234")

 Set rs = db.OpenRecordset("SELECT * AVAILABLE_STAFF WHERE staff_id = '" & Search_ID & "'", dbOpenSnapshot, dbOptimistic)
With rs

    If .RecordCount = 0 Then

    Else
    'INSERT DATA TO LISTVIEW
    End If
End With

rs.Close
Set rs = Nothing

db.Close
Set db = Nothing
答案

由于您没有显示任何E / R,并且不是100%清楚您要求的答案可能不如您所希望的那么好。

  1. 更改问题的标题。 “如何在一个查询中INNER JOIN 2或3个不同的数据库同一个表”令人困惑!您“在数据库中连接表”,您不“在一个查询中连接具有相同表的数据库”!
  2. 我无法弄清楚这一个[MS Access;DATABASE=" & Completed & ";PWD=pwd].[DOCUMENT_STATUS]?猜猜它创造了某种表格?
  3. 您只是从第一个别名表[ds]中选择结果?你有没有尝试过:
SELECT ds.*, cds.*
        FROM DOCUMENT_STATUS AS ds
        LEFT JOIN [MS Access;DATABASE=" & Completed & ";PWD=pwd].[DOCUMENT_STATUS] AS cds 
        ON ds.refnum=cds.refnum

在你的情况下你也可以做SELECT *而不是SELECT ds.*, cds.*

以上是关于如何在一个查询中INNER JOIN 2或3个具有相同表的不同数据库的主要内容,如果未能解决你的问题,请参考以下文章

涉及多个表的查询:INNER JOIN 排除了一些行

MySQL Inner Join 有限制吗?

`INNER JOIN` 过滤条件在查询中的位置; `ON` 或 `WHERE` 子句 [关闭]

具有 INNER JOIN 条件的 JPA 命名查询失败

在 SQL Server 查询的 WHERE 子句中引用或 INNER JOIN 一个 Pandas 数据帧值 [重复]

MySQL 连接的使用:语法及案例剖析INNER JOINLEFT JOINRIGHT JOIN