जैसा कि रॉबिन के उत्तर
पर टिप्पणियों में उल्लेख किया गया है , यह दृष्टिकोण अविश्वसनीय है क्योंकि MySQL यह गारंटी नहीं देता है कि यह हमेशा प्रत्येक समूह से सबसे हाल की स्थिति लौटाएगा। इसके बजाय आपको अपनी तालिका में एक सबक्वेरी के साथ शामिल होना चाहिए जो सबसे हाल की स्थिति का चयन करता है (addedDate
के आधार पर) )।
SELECT *
FROM status
NATURAL JOIN (
SELECT userID, MAX(addedDate) as addedDate
FROM status
GROUP BY userID
) AS mostRecent
ORDER BY addedDate DESC
LIMIT 10
ध्यान दें कि अगर किसी उपयोगकर्ता के पास एक ही addedDate
. के साथ कई स्टेटस अपडेट हैं , सर्वर उन सभी को वापस कर देगा (जबकि रॉबिन की क्वेरी एक अनिश्चित वापस कर देगी); यदि आपको ऐसी स्थिति पर नियंत्रण की आवश्यकता है, तो आपको यह परिभाषित करने की आवश्यकता होगी कि कोई कैसे निर्धारित करता है कि इस तरह की स्थिति अद्यतन का चयन किया जाना चाहिए।