gpt4 book ai didi

mysql - 如果符合条件,则获取 MySQL 中的最新条目

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

我正在完成一个购买事件门票的系统,我需要能够检查是否还有可用的门票。

我有一个表 (tbl_rel_order_status),它在订单和从支付网关(例如 PayPal)收到的新状态之间建立关系。每笔新交易都会生成一个新条目。

tbl_rel_order_status的结构和示例(tbl_order_id和tbl_status_order_id是FK)

| id | tbl_order_id | tbl_status_order_id | datetime            |
| 1 | 1 | 1 | 2016-08-01 18:20:00 |
| 2 | 1 | 3 | 2016-08-01 18:20:00 |

tbl_order的结构和示例(tbl_ticket_id、tbl_client_id和tbl_ payment_method_id是FK)

| id | tbl_ticket_id | tbl_client_id | tbl_payment_method_id | qnty |
| 1 | 1 | 1 | 1 | 40 |
| 2 | 1 | 2 | 1 | 3 |

我有几个“取消状态”(即:6、7、8、11、13、15),这都意味着由于某种原因,该数量的门票可以再次提供给其他客户。

事情是这样的:我正在执行一个查询来检索具有上述任何一种最新状态的票证数量。如果没有,查询应该跳到下一张票(这就是我陷入困境的地方)。

SELECT tbl_order.qnty
FROM (SELECT tbl_order_id,tbl_status_order_id
FROM tbl_rel_order_status
WHERE tbl_status_order_id IN ('6','7','8','11','13','15')
ORDER BY id DESC) inside
INNER JOIN tbl_order on tbl_order.id = inside.tbl_order_id
GROUP BY tbl_status_order_id

通过该查询,我只能获取具有其中任何一个的查询,但不能获取最新(或最新)的数据库条目。

SQL Fiddle

有什么线索吗?

最佳答案

您可以使用如下查询获取最新状态:

select o.*,
(select ros.tbl_status_order_id
from tbl_rel_order_status ros
where ros.tbl_order_id = o.id
order by ros.datetime desc
limit 1
) as last_status
from tbl_order o;

由此,我认为你想要:

select o.*,
(select ros.tbl_status_order_id
from tbl_rel_order_status ros
where ros.tbl_order_id = o.id
order by ros.datetime desc
limit 1
) as last_status
from tbl_order o
having last_status in ('6', '7', '8', '11', '13', '15');

关于mysql - 如果符合条件,则获取 MySQL 中的最新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38798073/

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