2013-04-05 105 views
1

我需要幫助與Access數據庫,我不知道該怎麼做的查詢。 我所擁有的是與存儲的疾病名稱和ID另一個叫症狀存儲症狀姓名和身份證,並在我相關聯的症狀給定的疾病另一個叫SymptomsDiseases表疾病的數據庫。我想要做的是獲得所有具有特定症狀的疾病,例如症狀爲ID 3,4和5的疾病。我應該如何解決這個問題?這些表和字段:訪問查詢選擇

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

回答

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 
+0

偉大的答案!這正是我需要的:)看起來我需要處理我的SQL技能。 – 2013-04-05 07:12:01