首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL比较select中的几个值

SQL比较select中的几个值
EN

Stack Overflow用户
提问于 2017-12-09 01:34:11
回答 2查看 58关注 0票数 1

所以我在SQL中有两个表,Patients和Patients_Treatments,它们与patient.id作为主键连接。我想做的是让一个特定的患者看看他做了什么治疗,所以我有这个代码:

代码语言:javascript
复制
SELECT (Treatment_code)
FROM Patients_Treatments
Where Patient_ID = '999999999'

现在我想要做的是从患者标签中提取所有与患者'99999999‘具有相同治疗代码(或更多治疗)的患者。

因此,如果患者'9999999‘接受了111,222,333次治疗,我有一个患者接受了111,222,555次治疗-它不会显示他,但如果他接受了111,222,333或111,222,333,444次治疗-它将显示他

我在如何做循环方面有问题,所以我确保它检查患者99999999已经做过的所有治疗,以及im检查的人也做过的。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-09 03:53:16

假设这是您提供的元数据和示例。

代码语言:javascript
复制
CREATE TABLE PATIENTS
(PATIENT_ID INTEGER);

CREATE TABLE PATIENTS_TREATMENTS
(PATIENT_ID INTEGER, TREATMENT_CODE INTEGER);

INSERT INTO PATIENTS VALUE (999999999),(1),(2),(3);

INSERT INTO PATIENTS_TREATMENTS VALUE 
(999999999, 111),(999999999, 222),(999999999, 333),
(1, 111),(1, 222),(1, 555),
(2, 111),(2, 222),(2, 333),
(3, 111),(3, 222),(3, 333),(3,444);

解决方案如下所示

代码语言:javascript
复制
SELECT 
      PATIENTS.PATIENT_ID 

   FROM PATIENTS

   INNER JOIN PATIENTS_TREATMENTS MYTREATMENT    
   ON PATIENTS.PATIENT_ID              = MYTREATMENT.PATIENT_ID

   LEFT JOIN PATIENTS_TREATMENTS COMPARETREATMENT 
   ON  COMPARETREATMENT.TREATMENT_CODE = MYTREATMENT.TREATMENT_CODE
   AND COMPARETREATMENT.PATIENT_ID     = '999999999'

   WHERE PATIENTS.PATIENT_ID <> '999999999'

   GROUP BY PATIENTS.PATIENT_ID
   HAVING COUNT(COMPARETREATMENT.TREATMENT_CODE) = (SELECT COUNT(*) FROM PATIENTS_TREATMENTS WHERE PATIENT_ID = '999999999')   

http://sqlfiddle.com/上试用一下

票数 1
EN

Stack Overflow用户

发布于 2017-12-09 01:39:24

试试这个

代码语言:javascript
复制
SELECT P.*
  FROM Patients P JOIN
       Patients_Treatments PT
       ON (P.Patient_ID = PT.Patient_ID)
 WHERE PT.Treatment_code IN ( SELECT Treatment_code
                                FROM Patients_Treatments
                               WHERE Patient_ID = '999999999');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47719462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档