SQL使用AND在列中查找两个值

时间:2018-09-05 21:46:52

标签: sql sql-server tsql

我是SQL的新手,有一个问题。我正在尝试

  

在此数据库中查找所有患病患者的姓名   失眠咳嗽

(这是上学的,所以不用担心,没有真正的人会因为我的无能而受到伤害)。

为此,我写了这篇文章:

 SELECT patientName 
   FROM Patient 
  WHERE patientID IN (SELECT patientID 
                        FROM Suffers 
                       WHERE illnessName LIKE '%Insomnia%' 
                         AND illnessName LIKE '%Cough%')

当我执行它时,我没有任何结果(我有一个 empty 游标)。这是一个问题,因为我知道数据库中有一个病人同时患有这两种疾病。我在做什么错了?

顺便说一句,我这里必须使用 AND运算符,这似乎是本练习的重点。

感谢所有帮助:)

1 个答案:

答案 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