gpt4 book ai didi

Mysql 从 2 个表中选择,如果找到特定数据则排除整行

转载 作者:行者123 更新时间:2023-11-29 09:52:12 25 4
gpt4 key购买 nike

我有 2 个表,其中包含以下内容:

表 1:患者(几乎包含我需要的所有信息)表 2:程序日志(包含对表 1 中列出的患者进行的程序)

我想查看所有有未清余额的患者,但我还想从该列表中排除仍然有未清余额但其手术日志包含将其识别为正畸病例的特定代码的患者。我的报告中没有任何正畸病例。

表 1 中有以下信息:

Patient Name | Patient Number | Estimated Balance
Jon | 5 | 120
Sara | 19 | 500

表 2 中:

Patient Number | Procedure CodeNum
5 | 222
5 | 223
5 | 244
5 | 80*****
19 | 80
19 | 10

如果我运行查询并排除 222 到 244 之间的 CodeNum 值,我仍然会在结果查询中得到 Patient Jon,因为他的程序编号为 80,这是常见的。我该如何排除乔恩?

SELECT distinct patient.Fname,patient.Lname,patient.PatNum,patient.EstBalance 
FROM opendental.patient,opendental.procedurelog
where EstBalance>=1
and patient.PatNum = procedurelog.PatNum
and procedurelog.CodeNum not between 222 and 244;

我使用 unique 是因为我不关心表 2 中的值,表 2 仅帮助我识别患者执行的程序列表。

最佳答案

如果我理解正确,您需要的是NOT EXISTS而不是JOIN:

SELECT p.Fname, p.Lname, p.PatNum, p.EstBalance 
FROM opendental.patient p
WHERE EstBalance >= 1 AND
NOT EXISTS (SELECT 1
FROM opendental.procedurelog pl
WHERE pl.PatNum = p.PatNum AND
pl.CodeNum not between 222 and 244
);

关于Mysql 从 2 个表中选择,如果找到特定数据则排除整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54610456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com