2

次のような一連の支払いレコードを持つ log_payment というテーブルがあります。

log_user_id, log_date, log_payment_id

13, 2013-01-01 01:13:00, TRIAL<BR>
13, 2013-01-02 01:18:00, 1<BR>
13, 2013-01-03 01:05:00, 2

私が取得したいのは、ユーザーの最後のレコードの支払い ID と日付です。したがって、user_id の最後のトランザクションが 01/03 で、支払い ID が 2 であることを確認したいので、次のクエリを書きました。

select max(log_date) as max_date,log_user_id,log_payment_id from log_payment group by log_user_id

しかし、それは戻ります13, 2013-01-03 01:05:00, TRIAL

そこで、どこかで見つけたデータに基づいて、これを試しました:

select log_user_id, max_date, log_payment_id from (select log_user_id,max(log_date) as max_date from log_payment group by _log_user_id) payment_table inner join log_payment on payment_table.log_user_id = log_payment.log_user_id and payment_table.max_date = log_payment.log_date

しかし、これは最終的にキャンセルするまで数分間続きます。私は何が欠けていますか?

4

2 に答える 2