假设我有一个名为疾病的表,其中有一列:
"disease_name" (primary Key)
另一方面,我有一个名为Symptoms的表,其中包含三列:
"id" (primary key auto generated number)
"symptom_name"
"disease_name_fk" (foreign key from table Diseases "disease_name")
鉴于上述方案,我想根据症状来检索疾病。
例如,我有“发烧”和“身体疼痛”的症状,我只想从表症状中检索与这两个症状相匹配的疾病。如果疾病只有一个匹配者,那么它就一文不值,它必须匹配给定的两个参数,并返回与那些症状相对应的疾病名称。
我该怎么做?
答案 0 :(得分:1)
您可以使用group by
和having
:
select disease_name_fk
from symptoms
where symptom_name in ('fever', 'body pain')
group by disease_name_fk
having count(*) = 2; -- number of symptoms in list