我需要一个关于Access数据库的查询帮助,我不知道该怎么做。我有一个数据库,其中包含一个存储疾病名称和ID的表,另一个名为Symptoms的数据库存储症状名称和ID,另一个名为SymptomsDiseases的数据库将症状与给定的疾病相关联。我想要做的是获得所有具有给定症状集的疾病,例如具有ID为3、4和5的症状的疾病。我应该如何使用SQL查询来解决这个问题?以下是表和字段:
1)疾病
IdDisease
DiseaseName
2)症状
IdSymptom
SymptonName
3) SymptomsDiseases
IdDiseases_fk
IdSymptoms_fk
例如,在此表中的=>:
IdDisease_fk || IdSymptoms_fk
6 || 4
6 || 5
6 || 3
6 || 7
6 || 8
4 || 10
4 || 11
4 || 4
4 || 5
4 || 3
发布于 2013-04-05 14:56:17
这种类型的技术称为Relational Division
SELECT a.IdDisease,
a.DiseaseName
FROM Diseases AS a
INNER JOIN SymptomsDiseases as B
ON a.IdDisease = b.IdDiseases_fk
WHERE b.IdSymptoms_fk IN (3,4,5) -- <<== list of ID of Symptoms
GROUP BY a.IdDisease, a.DiseaseName
HAVING COUNT(*) = 3 -- <<== number of symptoms
https://stackoverflow.com/questions/15827619
复制相似问题