我有2个数据库,我希望将其纳入一个查询。 这是结构
DB1
tblA
patientID UniqueID
23 1787S
25 0989S
tblB
patientID ApptType ApptDate
23 1 1/1/2018
25 2 1/1/2017
DB2
tblC
patientID UniqueID
3 1787S
tblD
patientID ApptType AppDate
3 1 2/2/2016
这是一个非常简化的数据结构,但应该足以获得我需要的查询: 基本上两个数据库中的许多患者是相同的,然而,这是因为他们具有不同的患者ID,这使得困难。它们具有相同的UniqueID。
我想在DB1
中找到AppType = 1
的客户。然后希望加入DB2
并仅选择那些拥有AppType = 1
的客户,但是,只显示那些匹配UniqueID
的客户
结果看起来像:
DB1_patientID DB2_patientID AppType UniqueID
23 3 1 1787S
所以我只看到这个客户端,因为在两个数据库中它都匹配第一个标准 - AppType = 1
,并且在两个数据库中客户端具有相同的UniqueID - 1787S
这是我尝试的但我不确定这是否正确:
Select a.patientID, c.patientID
From ((tblA a inner join DB2.tblC c on (a.UniqueID = c.UniqueID)) inner join tblB b
a.patientID = b.patientID) inner join DB2.tblD d on c.patientID = d.patientId
group by a.patientId, c.patientID
Having (b.appType = 1 and d.appType=1)
这个查询给了我结果,因为我喜欢成千上万的记录,很难验证一切是否正确。
答案 0 :(得分:1)
您的查询应该像
select
DB1_patientID = A.patientID,
DB2_patientID = C.patientID,
AppType = D.ApptType
UniqueID = C.uniqueid
from
tblA A
join tblB B
on B.patientID=A.patientID
and B.ApptType=1
join db2..tblC C
on A.uniqueid=C.uniqueid
join db2..tblD D
on C.patientID=D.patientID
and D.ApptType=1