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

जब मैं MAX (अपडेट_डेट) का चयन करता हूं तो अन्य कॉलम के लिए गलत मान प्राप्त करना

आपको या तो ग्रुप बाय क्लॉज या अधिक जटिल क्वेरी की आवश्यकता है।

SELECT field1, MAX(updated_date)
  FROM mytable
 GROUP BY field1

नमूना डेटा के लिए, यह 3 पंक्तियाँ लौटाएगा।

अधिक संभावना है, आप चाहते हैं:

SELECT t1.field1, t3.max_date
  FROM mytable AS t1
  JOIN (SELECT MAX(t2.updated_date) AS max_date
          FROM mytable AS t2
       ) AS t3
    ON t1.updated_date = t3.max_date;

नमूना डेटा के लिए, यह 1 पंक्ति लौटाएगा:

ta3   2012-03-11 11:05:56

प्रमुख डीबीएमएस में से, केवल MySQL आपको ग्रुप बाय क्लॉज को छोड़ने की अनुमति देता है जब आपके पास चयन-सूची में एग्रीगेट और गैर-एग्रीगेट कॉलम का मिश्रण होता है। SQL मानक के लिए GROUP BY क्लॉज की आवश्यकता होती है और आपको इसमें सभी गैर-एग्रीगेट कॉलम सूचीबद्ध करने होंगे। कभी-कभी, MySQL में, GROUP BY क्लॉज को छोड़ने से वह उत्तर मिलता है जो आप चाहते हैं; हालांकि, जितनी बार नहीं, यह एक अप्रत्याशित उत्तर देने का प्रबंधन करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या इस वर्ग में डेटाबेस कनेक्शन पुन:प्रयोज्य है?

  2. एक ही उप-क्वेरी एक ही क्वेरी में कई बार उपयोग की जाती है

  3. MySQL डेटाबेस में मौजूदा डेटा में डेटा जोड़ें

  4. MySQL कार्यक्षेत्र में संबंध कैसे बनाएं

  5. PHP जबकि लूप केवल अंतिम पंक्ति प्रदर्शित करता है