これはあなたの質問です:
SELECT *
FROM (SELECT *
FROM user_comission_configuration_history
ORDER BY on_date DESC
) AS ordered_history
WHERE user_id = 408002
GROUP BY comission_id;
クエリの大きな問題の1つは、MySQL拡張機能を使用してgroup by
を実行することです。 そのMySQL明示的に 警告します。拡張機能は、select
の他の列を使用することです group by
に含まれていないもの または集計関数で。警告(こちら
)は:
したがって、列に返される値は不確定です。 。
これがあなたが望むものを手に入れるための非常に効率的な方法です(英語で「コミッション」のスペルが正しい):
SELECT *
FROM user_commission_configuration_history cch
WHERE NOT EXISTS (select 1
from user_commission_configuration_history cch2
where cch2.user_id = cch.user_id and
cch2.commission_id = cch.commission_id and
cch2.on_date > cch.on_date
) AND
cch.user_id = 408002;