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

mysql - विशिष्ट शर्तों वाले संदेशों की थ्रेड सूची के लिए क्वेरी

आप ग्रुपवार अधिकतम चाहते हैं , जो Messages . में शामिल होकर पाया जा सकता है एक सबक्वेरी की तालिका जो प्रत्येक समूह के लिए पहचान (अधिकतम) टाइमस्टैम्प की पहचान करती है:

SELECT   Message.request_id,
         Sender.username   AS sender_name,
         Receiver.username AS receiver_name,
         Message.message   AS last_message,
         Message.timestamp AS last_timestamp
FROM     Message NATURAL JOIN (
           SELECT   request_id,
                    sender_id,
                    receiver_id,
                    MAX(timestamp) timestamp
           FROM     Message
           GROUP BY request_id, sender_id, receiver_id
         ) t
    JOIN User Sender   ON   Sender.id = Message.sender_id
    JOIN User Receiver ON Receiver.id = Message.receiver_id
ORDER BY Message.request_id, last_timestamp DESC

इसे 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. सदस्यता। एएसपीनेट मुद्दे में MySQL के लिए प्रदाता

  2. तालिका बदलें विदेशी कुंजी जोड़ें विफल रहता है

  3. Mysqli तैयार बयानों का उपयोग कैसे करें?

  4. MacOS हाई सिएरा पर mysql-अजगर स्थापित करें

  5. एक mysql डीबी की एकाधिक पंक्तियों में किसी शब्द की घटना को कैसे गिनें?