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

MySQL में GROUP BY के साथ नवीनतम पंक्ति का चयन करें

आप ग्रुपवाइज़ मैक्सिमम चाहते हैं; संक्षेप में, भुगतान तालिका को अधिकतम रिकॉर्ड की पहचान करने के लिए समूहित करें, फिर अन्य कॉलम लाने के लिए परिणाम को वापस अपने साथ जोड़ लें:

SELECT users.*, payments.method, payments.id AS payment_id
FROM   payments NATURAL JOIN (
  SELECT   user_id, MAX(id) AS id 
  FROM     payments
  GROUP BY user_id
) t RIGHT JOIN users ON users.id = t.user_id

ध्यान दें कि MAX(id) "सबसे हाल का भुगतान . नहीं हो सकता है ", आपके आवेदन और स्कीमा के आधार पर:आमतौर पर यह निर्धारित करना बेहतर होता है कि "नवीनतम " TIMESTAMP के आधार पर सिंथेटिक पहचानकर्ताओं जैसे कि AUTO_INCREMENT . के आधार पर आधारित नहीं प्राथमिक कुंजी कॉलम।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अनुक्रमित/अद्वितीय फ़ील्ड पर पूछताछ करते समय MySQL LIMIT 1 का उपयोग करने का कोई मतलब है?

  2. क्या MySQL कंपोजिट इंडेक्स को ऑर्डर करने के लिए कोई इष्टतम तरीका है?

  3. समय क्षेत्र की परवाह किए बिना MySQL डेटाटाइम को अंतराल में समूहित करना

  4. ASP.NET/पहचान त्रुटि:इकाई प्रकार ApplicationUser वर्तमान संदर्भ के लिए मॉडल का हिस्सा नहीं है

  5. एकाधिक $_POST सरणियों से MYSQL पंक्ति में कैसे सम्मिलित करें