ユーザーの支払いでいっぱいのテーブルがあります。各ユーザーは複数の支払いを受けることができます。各ユーザーの最新の支払いを選択しようとしています。
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)
を選択しているときに、同じ行から他のフィールドも選択していることを確認するにはどうすればよいですか。
助けに感謝します。