虽然我不确切知道您想要的最终结果是什么,但下面的查询和解释可能有助于解决您的问题。拥有额外的样本数据和您想要的结果样本会很有帮助,但这是我的尝试。
我从一个较小的查询开始,并尝试添加表。第一个查询,这不会为您提供大量数据,但会为您提供ChildMID
, MedicalId
and Station
为您的最终产品。你需要ChildMID
and MedicalId
加入更多桌子。 (SQL小提琴):
SELECT *
FROM Medical_Master mm
INNER JOIN Child_medical_Master cmm
ON mm.MedicalID = cmm.MedicalId
下一个表我添加了Medical_Study
表连接上ChildMID
您刚刚从之前的加入中获得的信息。这将为您带来UID
在你的最终产品中(SQL小提琴).
SELECT *
FROM Medical_Master mm
INNER JOIN Child_medical_Master cmm
ON mm.MedicalID = cmm.MedicalId
INNER JOIN Medical_Study ms
ON cmm.ChildMID = ms.ChildMID
在下一次加入中我添加了Study_Master
桌子。在这里,我做了一些稍微不同的事情,我在两个单独的字段上加入了表。对于这个查询,我加入了SMID
字段来验证该研究是否正确,但我也加入了MedicalID
字段以确保它使用正确的医疗记录。 (看SQL小提琴)如果您没有加入这两个字段,那么您将为表中的每一项获得一条记录Medical_Study
但您似乎想要与研究和医疗相匹配的项目。
SELECT *
FROM Medical_Master mm
INNER JOIN Child_medical_Master cmm
ON mm.MedicalID = cmm.MedicalId
INNER JOIN Medical_Study ms
ON cmm.ChildMID = ms.ChildMID
INNER JOIN Study_Master sm
ON ms.SMID = sm.SMID
AND mm.MedicalID = sm.MedicalID -- results change if you remove this line
下一个查询稍微容易一些,因为您要添加Medical_Visit
和Patient_Master
. (SQL小提琴)
SELECT *
FROM Medical_Master mm
INNER JOIN Child_medical_Master cmm
ON mm.MedicalID = cmm.MedicalId
INNER JOIN Medical_Study ms
ON cmm.ChildMID = ms.ChildMID
INNER JOIN Study_Master sm
ON ms.SMID = sm.SMID
AND mm.MedicalID = sm.MedicalID
INNER JOIN Medical_Visit mv
ON ms.VTID = mv.VTID
INNER JOIN Patient_Master pm
ON mv.PMID = pm.PMID
最终要添加的表是Doctor_Master
这将为您提供医生的名字。 (SQL小提琴)使用添加之前提供的示例数据Doctor_Master
表中有一条记录,但最终有 3 条记录。这是因为PMID
在某个时候看过所有 3 位医生。
SELECT *
FROM Medical_Master mm
INNER JOIN Child_medical_Master cmm
ON mm.MedicalID = cmm.MedicalId
INNER JOIN Medical_Study ms
ON cmm.ChildMID = ms.ChildMID
INNER JOIN Study_Master sm
ON ms.SMID = sm.SMID
AND mm.MedicalID = sm.MedicalID
INNER JOIN Medical_Visit mv
ON ms.VTID = mv.VTID
INNER JOIN Patient_Master pm
ON mv.PMID = pm.PMID
INNER JOIN Doctor_Master dm
ON mv.RFMID = dm.RFMID
删除最终查询不需要的所有字段是:
SELECT ms.UID,
pm.PMID,
pm.firstname,
pm.lastname,
mv.age,
mm.medicalname,
sm.description,
cmm.station,
ms.[date],
dm.doctorname
FROM Medical_Master mm
INNER JOIN Child_medical_Master cmm
ON mm.MedicalID = cmm.MedicalId
INNER JOIN Medical_Study ms
ON cmm.ChildMID = ms.ChildMID
INNER JOIN Study_Master sm
ON ms.SMID = sm.SMID
AND mm.MedicalID = sm.MedicalID
INNER JOIN Medical_Visit mv
ON ms.VTID = mv.VTID
INNER JOIN Patient_Master pm
ON mv.PMID = pm.PMID
INNER JOIN Doctor_Master dm
ON mv.RFMID = dm.RFMID
我认为这会产生您正在寻找的结果。