访问查询选择

时间:2013-04-05 06:51:55

标签: database ms-access-2010

我需要有关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

1 个答案:

答案 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