SQL - 查找患有所有可用疾病的患者

时间:2017-09-06 17:24:16

标签: sql-server

我有以下表格

患者

pID <<PK>>

pName

DiseaseList

dName <<PK>>

SuffersFrom(dName和pID也是SuffersFrom的PK)

dName <<FK>> 

pID <<FK>>

我想要做的是选择患有疾病列表中所有疾病的患者的姓名,但我真的不知道我是如何做到这一点的。

我试过在网上搜索,但没有找到任何帮助我的东西。这是我为SQL介绍类做的唯一一项任务,我真的想不出如何设置查询。

1 个答案:

答案 0 :(得分:1)

由患者分组并且仅采集与疾病表中具有相同数量的不同疾病的那些

select p.pid, p.pname
from patient p
join suffersFrom s on s.pid = p.pid
group by p.pid, p.pname
having count(distinct s.dname) = (select count(*) from DiseaseList)