我有以下表格
患者
pID <<PK>>
pName
DiseaseList
dName <<PK>>
SuffersFrom(dName和pID也是SuffersFrom的PK)
dName <<FK>>
pID <<FK>>
我想要做的是选择患有疾病列表中所有疾病的患者的姓名,但我真的不知道我是如何做到这一点的。
我试过在网上搜索,但没有找到任何帮助我的东西。这是我为SQL介绍类做的唯一一项任务,我真的想不出如何设置查询。
答案 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)