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

MySQL में परिणाम रैंकिंग करते समय मैं संबंधों को कैसे संभाल सकता हूं?

संपादित करें :यह MySQL 4.1+ समर्थित है

उपयोग करें:

   SELECT st.name,
          sc.grades,
          CASE 
            WHEN @grade = COALESCE(sc.grades, 0) THEN @rownum 
            ELSE @rownum := @rownum + 1 
          END AS rank,
          @grade := COALESCE(sc.grades, 0)
     FROM STUDENTS st
LEFT JOIN SCORES sc ON sc.student_id = st.id
     JOIN (SELECT @rownum := 0, @grade := NULL) r
 ORDER BY sc.grades DESC

आप एक अलग SET का उपयोग किए बिना एक चर घोषित करने और उपयोग करने के लिए एक क्रॉस जॉइन (MySQL में, एक INNER JOIN बिना किसी मानदंड के) का उपयोग कर सकते हैं। बयान।

NULLs को ठीक से संभालने के लिए आपको COALESCE की आवश्यकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP पीडीओ एकाधिक चयन क्वेरी लगातार अंतिम पंक्ति को छोड़ रही है

  2. मैसकल - सभी टैग से मेल खाने वाली आईडी चुनें

  3. केवल MYSQL DatedIFF में घंटे दिखाएं

  4. स्क्लाइट या माईएसक्ल? कैसे तय करें?

  5. सॉकेट '/var/lib/mysql/mysql.sock' के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता (2)