distinct
कुंजी शब्द वह कर रहा है जो उसे करना है, प्रत्येक पंक्ति को दिए गए कॉलम मान के साथ लौटाएं। विशिष्ट आपको कौनसा . निर्दिष्ट करने की अनुमति नहीं देता है ऐसी पंक्ति लौटा दी जाएगी, और यह मूल क्वेरी से स्पष्ट है कि इस तरह के आदेश की अनुमति है (आईडी 443 के साथ एक पंक्ति है जो आईडी 429 के साथ एक पंक्ति का अनुसरण करती है)।
कौन सी पंक्तियाँ वापस की जाएँगी इसका नियंत्रण लेने के लिए, आपको क्वेरी को पुन:स्वरूपित करने की आवश्यकता है। एक सामान्य समाधान जो मैं लूंगा वह है group by
. का उपयोग करना , समूह कॉलम और प्रत्येक समूह से वांछित पंक्ति का चयन, कुछ प्रभाव के लिए
SELECT message.id, MAX(message.created_at) FROM message GROUP BY message.id;
यदि मुझे और अधिक करने की आवश्यकता है, तो मैं इस प्रकार की क्वेरी को एक बड़ी क्वेरी में उप-चयन के रूप में उपयोग करूंगा, संभवतः पसंदीदा पंक्ति से अधिक फ़ील्ड प्राप्त करने के लिए आईडी फ़ील्ड में शामिल हो रहा हूं, या किसी विशेष तरीके से क्वेरी को ऑर्डर कर रहा हूं।