我是SQL的新手,有一个问题。我正在尝试
在此数据库中查找所有患病患者的姓名 失眠和咳嗽
(这是上学的,所以不用担心,没有真正的人会因为我的无能而受到伤害)。
为此,我写了这篇文章:
SELECT patientName
FROM Patient
WHERE patientID IN (SELECT patientID
FROM Suffers
WHERE illnessName LIKE '%Insomnia%'
AND illnessName LIKE '%Cough%')
当我执行它时,我没有任何结果(我有一个 empty 游标)。这是一个问题,因为我知道数据库中有一个病人同时患有这两种疾病。我在做什么错了?
顺便说一句,我这里必须使用 AND
运算符,这似乎是本练习的重点。
感谢所有帮助:)
答案 0 :(得分:3)
您应该检查patientID
两次;您的查询已修改:
SELECT patientName
FROM Patient
WHERE patientID IN (SELECT patientID FROM Suffers WHERE illnessName LIKE '%Insomnia%')
AND patientID IN (SELECT patientID FROM Suffers WHERE illnessName LIKE '%Cough%')
现在,patientID
属于失眠和咳嗽Suffers