我有三张桌子
内镜检查与患者是多对一的,组织学是一对多
组织学通常与内窥镜一对一,但这种关系在现实生活中不存在于数据库中
我想获得每位患者的内窥镜检查的组织学,其中组织学的日期与内窥镜检查的日期相同
到目前为止我已经
了select Endoscopy.*,Histology.Diagnosis
from Endoscopy
INNER JOIN PatientData
ON Endoscopy.HospNum_Id=PatientData.HospNum_Id
INNER JOIN Histology
ON Histology.HospNum_Id=PatientData.HospNum_Id
然而,这导致数据集,其中对于每个组织学记录,患者的一个(第一个)内窥镜检查是重复的。如何获得与组织学相关的内窥镜检查而不是重复检查?
答案 0 :(得分:1)
为避免重复使用distinct并在date_of_test上添加条件
Select distinct
Endoscopy.*
,Histology.Diagnosis
from Endoscopy
INNER JOIN PatientData ON Endoscopy.HospNum_Id=PatientData.HospNum_Id
INNER JOIN Histology ON Histology.HospNum_Id=PatientData.HospNum_Id
WHERE Histology.date_of_test = Endoscopy.date_of_test