Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

माईस्क्ल टाइमक्लॉक

आपके पास एक 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 एग्रीगेट फंक्शन रेफरेंस।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubuntu 10.04 LTS (ल्यूसिड) पर MySQL रिलेशनल डेटाबेस का उपयोग करें

  2. लगातार दो पंक्तियों में तिथियों के बीच अंतर

  3. लिथियम में MySQL फ़ंक्शन को कॉल करना

  4. MySQL में महीने के हिसाब से ग्रुप कैसे करें

  5. Google स्प्रैडशीट को MySQL w/JDBC से कनेक्ट करना