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

MySql :ऑर्डर बाय और ग्रुप नवीनतम रिकॉर्ड न देने के संयोजन से

आप GROUP BY id_thread कैसे कर सकते हैं? जब कोई id_thread न हो आपकी तालिका में कॉलम?

SELECT * 
FROM contacts 
WHERE id_receiver = 1 
                                 --- GROUP BY id_thread
                                 --- removed 
ORDER BY created DESC
LIMIT 1                          --- only show one row

आपकी टिप्पणियों के आधार पर, आप जो चाहते हैं वह नवीनतम है (created . द्वारा आदेशित) ) प्रत्येक id_thread . के लिए पंक्ति , जो एक अलग और अधिक जटिल क्वेरी है। इस तरह के प्रश्नों के लिए एक टैग भी है, जिसका नाम है [greatest-n-per-group] .

SELECT c.* 
FROM contacts AS c
  JOIN
    ( SELECT id_thread, MAX(created) AS created 
      FROM contacts 
      WHERE id_receiver = 1  
      GROUP BY id_thread
    ) AS g 
    ON (g.id_thread, g.created) = (c.id_thread, c.created) 
WHERE c.id_receiver = 1  


  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. Laravel एक शर्त के साथ दो स्तंभों के योग की गणना करता है

  3. नेस्टेड सेट मॉडल पीएचपी पुस्तकालय

  4. Node.js में सिंक्रोनस mysql

  5. TOP या LIMIT का उपयोग किए बिना शीर्ष 10 पंक्तियों को पुनः प्राप्त करें? - सप्ताह #247 . का साक्षात्कार प्रश्न