我有一张满是用户付款的桌子。每个用户可以进行多次付款。我希望为每个用户选择最新的付款。
SELECT DATE_FORMAT(FROM_UNIXTIME(MAX(p.date)), "%D %M %Y") as last_payment, p.user_id, p.amount, p.period, p.txn_id, u.name
FROM payments as p
INNER JOIN users as u
ON u.id = p.user_id
GROUP BY p.user_id
ORDER BY p.date DESC
现在这似乎工作正常,该last_payment
字段确实是用户最近一次付款的日期,唯一的问题是其他付款字段与用户上次付款相同p.txn_id
且p.amount
不一定对应于同一行,而是来自以前的付款。
我如何确保当我选择它时,MAX(p.date)
它也会从同一行中选择其他字段。
感谢帮助。