gpt4 book ai didi

Mysql查询根据最大顺序获取记录

转载 作者:行者123 更新时间:2023-11-30 22:56:45 26 4
gpt4 key购买 nike

更具体地说,我有 2 个表:

1. product table:
id pname
1 camera
2 tv
3 fridge

2. Approval table:
id user_id order status
2 suneel 1 approved
2 raj 2 approved
2 kumar 3 pending
3 suneel 1 approved
3 raj 2 pending
3 kumar 3 pending
3 xxxx 4 pending

每个产品都将通过订单中的审批链。所以我正在寻找一个查询,该查询将列出待处理的记录和下一个批准订单项目。

查询将只显示每个项目的一条记录。

预期输出:

id pname user_id order status
2 tv kumar 3 pending
3 fridge raj 2 pending

最佳答案

如果我正确理解您的逻辑,我会从这样的查询开始,它将返回每次批准的最大订单数:

SELECT   id, MAX(`order`) as max_approval
FROM approval
WHERE status='approved'
GROUP BY id

然后你可以将它连接回原来的表:

SELECT
a.id,
p.pname,
max_approval as `order`,
a2.user_id,
a2.status
FROM
(
SELECT id, MAX(`order`) as max_approval
FROM approval
WHERE status='approved'
GROUP BY id
) a INNER JOIN product
ON a.id = product.id
LEFT JOIN approval a2
ON a.id = a2.id AND a.max_approval=a2.`order`-1

这将在状态已批准后返回下一行,但这并没有考虑产品无法获得批准,或者只能获得批准而永远不会等待的事实。根据您的应用程序的逻辑,这可能是也可能不是问题。

关于Mysql查询根据最大顺序获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26024446/

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