我需要有关Access数据库的查询的帮助,我不知道该怎么做。 我所拥有的是一个包含表疾病的数据库,用于存储疾病名称和ID,另一个称为症状,用于存储症状名称和ID,另一个名为SymptomsDiseases,其中我将症状与特定疾病相关联。我想做的是获得所有具有一系列症状的疾病,例如ID为3,4和5的疾病。我应该采取哪些SQL查询来解决这个问题?这些是表格和字段:
1)疾病
IdDisease
DiseaseName
2)症状
IdSymptom
SymptonName
3)症状疾病
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
答案 0 :(得分:0)
此类技术称为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