gpt4 book ai didi

python - 具有子集属性的 SQL 查询过滤器

转载 作者:行者123 更新时间:2023-11-29 21:31:47 26 4
gpt4 key购买 nike

我使用 sqlalchemy 来处理 mysql 数据库。我有一个类似这样的表:

=============================================
id user_name time status content2
=============================================
1 a 1 approved x
2 a 2 open y
3 b 1 rejected g
4 b 3 open h

我想找出所有处于已批准状态但不是给定用户的最新行。例如,id=1 的行处于已批准状态,但存在来自同一用户的后续报告。我想过滤诸如 (1) 之类的行。

我只能通过首先过滤 status=approved 的所有行,然后查找是否有同一用户和日期的任何行来做到这一点。这非常慢。我正在寻找一种可以在单个查询中完成的更快的替代方案。

最佳答案

所有行均处于已批准状态,但不是给定用户的最新行:

SELECT * FROM MyTable outer
WHERE status = 'approved'
AND id <> (SELECT MAX(id) FROM MyTable inner WHERE inner.user_name = outer.user_name)

关于python - 具有子集属性的 SQL 查询过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35195008/

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