1

方法がわからない Access データベースのクエリについてサポートが必要です。私が持っているのは、病気の名前と ID を格納するテーブルの病気を含むデータベースです。もう 1 つは、症状の名前と ID を保存する「症状」と呼ばれ、症状を特定の病気に関連付ける「症状」と呼ばれる別のデータベースです。私がやりたいことは、ID 3、4、および 5 の症状を伴う病気など、特定の症状のセットを持つすべての病気を取得することです。これを解決するために行うべき SQL クエリは何ですか? これらはテーブルとフィールドです:

1) 病気

病名

疾患名

2) 症状

IdSymptom

症状名

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 に答える