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

प्रत्येक विशिष्ट उम्मीदवार_आईडी की सबसे हाल की तारीख वाली पंक्तियों से डेटा लौटाएं

आपको group by . करना होगा सब कुछ एक समग्र फ़ंक्शन का उपयोग नहीं कर रहा है:

SELECT candidate_id, message, max(created_unix), jobpost_id, staffuserid 
    FROM messages 
       WHERE employer_id='$employerid' AND last='company' 
          GROUP BY candidate_id, message, jobpost_id, staffuserid 

अगर आपका message प्रति पंक्ति अलग है और आप group by candidate_id , तो आपको message . का उपयोग नहीं करना चाहिए . उस स्थिति में, बस इसे अपनी चयन सूची से हटा दें और आपको अपने group by में इसकी आवश्यकता नहीं होगी सूची। वही किसी अन्य फ़ील्ड के लिए जाता है जिसका आप उपयोग नहीं कर रहे हैं।

याद रखें, एग्रीगेट फ़ंक्शंस का उपयोग करते समय, आपको प्रत्येक फ़ील्ड को या तो एग्रीगेट फ़ंक्शन या group by . में शामिल करना चाहिए . अन्यथा, SQL को पता नहीं चलेगा कि किस पंक्ति से लौटाई गई पंक्ति के लिए डेटा खींचना है।

अपडेट करें:

आप जो खोज रहे हैं उसे देखने के बाद, यह काम करेगा:

SELECT candidate_id, message, max(created_unix), jobpost_id, staffuserid 
    FROM messages 
       WHERE employer_id='$employerid' AND last='company' AND
       created_unix = (
           SELECT max(subm.created_unix)
           FROM messages subm
           WHERE subm.candidate_id = messages.candidate_id
       )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PyInstaller, कल्पना फ़ाइल, ImportError:'blah' नाम का कोई मॉड्यूल नहीं

  2. तालिका के लिए प्राथमिक कुंजी के लिए अद्वितीय यादृच्छिक पूर्णांक आईडी कैसे बनाएं?

  3. स्तंभ संख्या पंक्ति 1 पर मान गणना से मेल नहीं खाती

  4. ZF2 में Zend\Db लेनदेन को कैसे नियंत्रित करता है?

  5. Mysql में ऑटोरनिंग क्वेरी