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

MySQL किसी अन्य फ़ील्ड पर अधिकतम मान के साथ दो तालिका में शामिल हो जाता है

आपको इस तरह की दो उप-प्रश्नों का उपयोग करने की आवश्यकता है:

SELECT a.cid, a.name, a.mobile, b.date, b.balance
FROM account a 
JOIN
(
    SELECT b1.* FROM balance b1
    JOIN
    (
      SELECT cid, MAX(Date) As maxDate
      FROM balance
      GROUP BY cid
    ) b2
    ON b1.cid = b2.cid
    AND b1.date = b2.maxDate
) b
ON a.cid = b.cid;

आउटपुट:

<थ>नाम <थ>तारीख
सीआईडी मोबाइल बैलेंस
1 एबीसी 12345 सितंबर, 20 2013 00:00:00+0000 300
2 XYZ 98475 सितंबर, 21 2013 00:00:00+0000 600

इसे देखें SQLFiddle

संपादित करें

जैसा कि टिप्पणियों में चर्चा की गई है, यह प्रश्न केवल एक उपश्रेणी के साथ भी लिखा जा सकता है:

SELECT a.cid, a.name, a.mobile, b1.date, b1.balance 
FROM account a 
JOIN balance b1 ON a.cid = b1.cid     
JOIN (
    SELECT cid, MAX(Date) As maxDate 
    FROM balance 
    GROUP BY cid
) b2 
ON b1.cid = b2.cid 
AND b1.date = b2.maxDate

समायोजित SQLFiddle देखें



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या php क्रम से mysql क्रम से बेहतर है?

  2. गोलांग में पंक्तियों की संख्या गिनें

  3. mysql डेटा के साथ कॉम्बो बॉक्स भरना

  4. MYSQL:उपयोगकर्ता - प्रोफ़ाइल विवरण तालिका सेटअप - सर्वोत्तम अभ्यास

  5. MySQL महीने के आधार पर एक समूह सहित दो अन्य परिकलित राशियों के प्रतिशत की गणना करता है