आपके पास एक GROUP BY
नहीं है आपके MAX()
. के लिए क्लॉज सकल। आपको सही उत्तर मिलने का कारण 12
आपके पहले क्वेरी प्रयास के लिए केवल इसलिए था क्योंकि यह तालिका में सबसे बड़ी आईडी होती है, जबकि संयोग से emp_id = 1
से संबंधित होती है . आपको emp_id
. में से किसी के लिए भी यही परिणाम मिलता मूल्य। ए GROUP BY
क्लॉज इसे सुलझा लेगा।
संबंधित रिकॉर्ड के लिए पूरी पंक्ति को पुनः प्राप्त करने का एक उदाहरण यहां दिया गया है:
SELECT * FROM timeclock
WHERE id = (SELECT MAX(id) AS id FROM timeclock WHERE emp_id = 1 GROUP BY emp_id);
यह HAVING
. के साथ भी किया जा सकता है खंड, उपश्रेणी की आवश्यकता नहीं है:
SELECT action
FROM timeclock
WHERE emp_id = 1
GROUP BY emp_id
HAVING id = MAX(id);
संदर्भ के लिए, MySQL एग्रीगेट फंक्शन रेफरेंस।ए>