1

我需要有关 Access 数据库查询的帮助,但我不知道该怎么做。我所拥有的是一个数据库,其中包含一个存储疾病名称和 ID 的表疾病,另一个名为“症状”的存储症状名称和 ID,另一个名为“症状疾病”的数据库,其中我将症状与给定的疾病相关联。我想要做的是获取所有具有给定症状集的疾病,例如具有 ID 3、4 和 5 症状的疾病。我应该做什么来解决这个问题的 SQL 查询?这些是表和字段:

1) 疾病

传染病

疾病名称

2) 症状

症状

症状名称

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

4

1 回答 1

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
于 2013-04-05T06:56:16.893 回答