gpt4 book ai didi

php - SQL : select last pay time with money in MySQL

转载 作者:行者123 更新时间:2023-11-28 23:57:09 26 4
gpt4 key购买 nike

我有一个名为“pay_logs”的表,包括用户的支付日志,

1。字段如下:

============================================= =

id           | primary key, auto_increment
user_account | NOT NULL, NOT UNIQUE
money | DEFAULT 0.00
time | NOT NULL

============================================= =

2。表中数据

============================================= =

id | user_account | time | money
1 | Mary | 1480000008 | 10.00
2 | Mary | 1480000009 | 5.00
3 | John | 1480000001 | 2.00
4 | John | 1480000002 | 1.00

============================================= =

我想选择用户的LAST pay time with its money,那么我怎样才能在一个 SQL 中做到这一点

这是我的 SQL

select *, max(time)
from pay_logs
group by user_account;

3。结果是:

============================================= =

id | user_account | time | money | max(time)
3 | John | 1480000001 | 2.00 | 1480000002
1 | Mary | 1480000008 | 10.00 | 1480000009

============================================= =

4。但它不会如我所愿:

我要的数据是id为2和4的记录,所以有人帮助我吗?我想在一个 SQL 中做到这一点,只是 SQL,如果 SQL 无法完成这项工作,还有其他解决方案吗? THX TXH TXH ~~~

P.S.我用的是PHP

最佳答案

以您的查询为基础,您需要使用group byjoin:

select pl.*
from pay_logs pl join
(select user_account, max(time) as maxt
from pay_logs
group by user_account
) ua
on pl.user_account = ua.user_account and pl.time = ua.maxt;

您的查询使用了 MySQL(错误)功能,该功能允许 group by 中的列不在 group by 子句中。除非您真的知道自己在做什么,否则您永远不应该这样做。

关于php - SQL : select last pay time with money in MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31357915/

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