SELECT * FROM my_table -- standard stuff
WHERE user_2 = 22 -- predicate
ORDER BY timestamp DESC -- this means highest number (most recent) first
LIMIT 1; -- just want the first row
संपादित करें:
वैसे, यदि आप उत्सुक हैं कि आपकी मूल क्वेरी काम क्यों नहीं कर रही है, तो आइए अंशों को तोड़ते हैं:
my_table
से कुछ सामान चुनें ...- जहां
user_2
=22 - और
timestamp
=(कुछ मूल्य, चलो इसे अभी के लिए अलग रख दें) - सीमा 1
अब, उस timestamp
पर वापस आ रहे हैं मान, यह आपके सबक्वेरी से आता है:
SELECT MAX( timestamp ) FROM my_table
ध्यान दें कि यह सबक्वेरी user_2
. के आधार पर किसी भी पंक्ति को प्रतिबंधित नहीं करती है -- यह पूछता है कि संपूर्ण तालिका में अधिकतम टाइमस्टैम्प क्या है . वह अधिकतम टाइमस्टैम्प आपकी उपरोक्त तालिका में पहला है:(user_1 =23, user_2 =25, टाइमस्टैम्प =2012-08-10 22:00:00)।
तो, चलिए इसे वापस शीर्ष-स्तरीय क्वेरी में जोड़ते हैं:
my_table
से कुछ सामान चुनें ...- जहां उपयोगकर्ता_2 =22
- और टाइमस्टैम्प =2012-08-10 22:00:00
- सीमा 1
... और आप देख सकते हैं कि ऐसी कोई पंक्ति नहीं है।