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

द्वारा समूह के भीतर आदेश?

SELECT  c.*, p.*
FROM    clients AS c
JOIN    programs AS p
ON      p.id = 
        (
        SELECT  pi.id
        FROM    programs AS pi
        WHERE   pi.client_id = c.id
        ORDER BY
                pi.close_date=0 DESC, pi.close_date DESC
        LIMIT 1
        )

Thanx को @Quassnoi पर जाना चाहिए . एक समान (लेकिन अधिक जटिल) प्रश्न में उसका उत्तर देखें:mysql-समूह-दर-प्रदर्शन-नवीनतम-परिणाम

अगर आप programs को अपडेट करते हैं तालिका और सेट करें close_date सभी रिकॉर्ड के लिए कि यह शून्य से close_date='9999-12-31' . है , फिर आपका ORDER BY आसान होगा (और उचित इंडेक्स के साथ पूरी क्वेरी तेज):

        ORDER BY
                pi.close_date DESC


  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. MySQL में OCT () फ़ंक्शन कैसे काम करता है

  3. मैं डेटाबेस स्टेटमेंट बनाने में एक वेरिएबल का उपयोग कैसे करूं?

  4. MySQL डेटाबेस को PHP वेबसाइट से कैसे कनेक्ट करें

  5. चेतावनी:mysqli_query() पैरामीटर 1 को mysqli होने की अपेक्षा करता है, संसाधन दिया गया है