gpt4 book ai didi

mysql - 从列表中排除记录

转载 作者:行者123 更新时间:2023-11-29 22:39:36 28 4
gpt4 key购买 nike

我对使用 SQL 还比较陌生,但我完全坚持我正在做的事情。

我有一个代码列表,我不想将其包含在我的数据中,但如果该代码出现在该患者的任何记录中,我希望能够排除一整天的任何内容那天。

我正在尝试的只是排除列表中的记录,而不是全天记录。

我确信这很简单,但我已经有点脑死亡了。

最佳答案

一般来说(因为您缺乏详细信息,例如您使用的 RDBMS、您存储日期的数据类型):

  1. 您需要能够确定两条记录是否来自同一日期。如何执行此操作取决于 RDBMS 和数据类型。
  2. 您可以使用 LEFT OUTER JOINNOT EXISTS 运算符来识别符合您条件的记录:

左外连接

SELECT r1.your_field...
FROM your_table r1 LEFT OUTER JOIN your_table r2
ON r1.id_field != r2.id_field AND r1.date = r2.date AND
r2.code_field = 'forbidden value'
WHERE r1.code_field != 'forbidden value' AND r2.code_field IS NULL;

对于 your_table 中的每条记录,此操作都会尝试在表中查找具有禁止值的另一条记录。通过指定 code_field 为 null,此类记录将被排除。

不存在

SELECT r1.your_field...
FROM your_table r1
WHERE r1.code != 'forbidden value' AND
NOT EXISTS (
SELECT 1 FROM your_table r2
WHERE r1.date = r2.date AND r2.code = 'forbidden value');

对于每个值,它会扫描表中是否存在禁止值,并排除找到命中的行。此方法效率较低,如果您的数据集特别大,则可能会令人望而却步,但通常更容易理解,并且可能适用于您的应用程序。

关于mysql - 从列表中排除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29416516/

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