gpt4 book ai didi

mysql - 选择与其他行外部/连接不同的行?

转载 作者:行者123 更新时间:2023-11-29 12:47:15 24 4
gpt4 key购买 nike

我有一个类似于的表格

╔═════════════════════════════════════╗
║ id type report_id state ║
╠═════════════════════════════════════╣
║ 1 dc 122 pending ║
║ 2 dc 123 pending ║
║ 3 dc 123 approved ║
║ 4 dc 123 pending ║
║ 5 dc 123 approved ║
║ 6 bb 123 pending ║
║ 7 dc 123 pending ║
║ 8 dc 124 pending ║
║ 9 dc 125 pending ║
╚═════════════════════════════════════╝

我正在尝试按状态待处理的类型获取最后一个report_id所以我想要的结果是

122 (id 1 -- dc)
123 (id 6 -- bb)
123 (id 7 -- dc)
124 (id 8 -- dc)
125 (id 9 -- dc)

现在我正在获取所有内容,然后在数组上运行 3 个循环...我知道有一种方法可以 join 或执行 outer 查询来获取它没有循环,有什么关于我如何措辞的输入吗?

我在测试数据库(15 条记录)上运行了一个查询,它在那里工作,但在实时数据库(40k 记录)上挂起

SELECT report_id, type, state
FROM histories
WHERE id IN (
SELECT MAX(id) FROM histories
GROUP BY report_id
)
AND state <> 'approved'

为此,子查询执行良好并给出正确的结果,如果我提取子查询,主查询将给出结果,但将它们组合起来就会挂起......在具有有限数据集的本地计算机上的 ta SQL(不是 MySQL)数据库上进行了测试

最佳答案

我认为你只想要一个带有过滤器的group by:

select report_id, type, max(id)
from table t
where state = 'pending'
group by report_id, type;

关于mysql - 选择与其他行外部/连接不同的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25273297/

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