gpt4 book ai didi

MySQL:排除子查询中收集的同一个表中的项目

转载 作者:行者123 更新时间:2023-11-29 00:40:19 24 4
gpt4 key购买 nike

我在这里尝试完成的事情似乎并不太难,在执行过程中我没有发现我做错了什么,但我得到了一些应该从结果集中取反的结果。

我正在手机上写这篇文章,所以请原谅我手写这些内容:

该表称为“请求”,在程序中人们可以注册接受请求。客户端的特定请求是对已经接受请求的用户隐藏。

这是陷阱 22:请求基于另一个表中的特定实体,并且每个基本实体可以发布多个请求。基本上从系统中删除所述实体的重复项,我想出一种处理这个问题的好方法是有一个新的关联行,称为请求,其中包含唯一 ID、请求者的帐户 ID、实体的实体 ID请求基于可用请求的特定行的接受者的帐户 ID 字段。

如您所见,它的解释开始变得有些困惑,但请记住,这是一个相当晚的更改,无法在现阶段更改系统。

所以这是我记得最清楚的查询:

选择 *从 要求在哪里 完成 = 0 和 entity_id != ANY (SELECT GROUP_CONCAT(entity_id) WHERE accepted_account_id = '8')

8 是我在系统中的帐户 ID,系统中有 8 个基本实体(全部从同一个帐户发布,7 个),其中 2 个实体有基于它们的请求,第一个有 4 个请求,然后第二个有 16 个请求。所以请求表中有 20 个请求行。作为用户,我已经接受了对系统中两个实体的单一请求。所以在请求表的两行中,RequestID 为 1,实体 ID 为 1,接受者帐户 ID 为 8和RequestID 为 5,实体 ID 为 3,Acceptor Account ID 为 8

而所有其他行都包含 acceptor_account_id 的空字段

我试图简单地从结果集中否定整个 entity_ids,以免弄乱同一查询中正在进行的分页(我对分离查询不感兴趣,我 150% 肯定这一切都可以在一个查询中完成)

如果有人有任何问题,请告诉我,因为这很紧急:(

最佳答案

SELECT * FROM requests WHERE completed = 0 AND entity_id NOT IN(SELECT entity_id WHERE accepted_account_id = '8' GROUP BY entity_id)

关于MySQL:排除子查询中收集的同一个表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12540936/

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