यह आपकी क्वेरी है:
SELECT *
FROM (SELECT *
FROM user_comission_configuration_history
ORDER BY on_date DESC
) AS ordered_history
WHERE user_id = 408002
GROUP BY comission_id;
आपकी क्वेरी के साथ एक बड़ी समस्या यह है कि यह group by
. के लिए MySQL एक्सटेंशन का उपयोग करती है कि 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;