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

Hee*_*man 2 sql t-sql sql-server

我是 SQL 新手,遇到了一些问题。我试图

查找此数据库中同时患有失眠咳嗽的患者的姓名

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

为了实现这个目标我写了这个:

 SELECT patientName 
   FROM Patient 
  WHERE patientID IN (SELECT patientID 
                        FROM Suffers 
                       WHERE illnessName LIKE '%Insomnia%' 
                         AND illnessName LIKE '%Cough%')
Run Code Online (Sandbox Code Playgroud)

当我执行它时,我没有得到任何结果(我有一个光标)。这是一个问题,因为我知道数据库中有一名患者患有这两种疾病。我究竟做错了什么?

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

感谢任何和所有的帮助:)

Dmi*_*nko 5

你应该检查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%')  
Run Code Online (Sandbox Code Playgroud)

现在patientID属于失眠咳嗽Suffers