如何制作一条仅包含与提供的两个参数匹配的记录的SQL语句?

时间:2018-12-03 23:31:47

标签: sql

假设我有一个名为疾病的表,其中有一列:

 "disease_name" (primary Key)

另一方面,我有一个名为Symptoms的表,其中包含三列:

 "id" (primary key auto generated number)
 "symptom_name"
 "disease_name_fk" (foreign key from table Diseases "disease_name")

鉴于上述方案,我想根据症状来检索疾病。

例如,我有“发烧”和“身体疼痛”的症状,我只想从表症状中检索与这两个症状相匹配的疾病。如果疾病只有一个匹配者,那么它就一文不值,它必须匹配给定的两个参数,并返回与那些症状相对应的疾病名称。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用group byhaving

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