У меня есть 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
Это значительно упрощенные структуры данных, но следуетДостаточно, чтобы получить нужный мне запрос: в основном, многие пациенты в обеих базах данных одинаковы, и это то, что, однако, у них разные идентификаторы пациента, что усложняет задачу.Они имеют одинаковые уникальные идентификаторы.
Я хочу найти клиентов в 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)
Этот запрос дает мне результаты, однако, поскольку у меня есть десятки тысяч записей, трудно проверить, все ли правильно.