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

MYSQL, मैक्स, ग्रुप बाय और मैक्स

SELECT  g.*, d.*
FROM    MovieGenre g
        INNER JOIN MovieDetail d
            ON g.MovieID = d.MovieID
        INNER JOIN
        (
            SELECT  a.Genre, MAX(b.Rating) maxRating
            FROM    MovieGenre a
                    INNER JOIN MovieDetail b
                        ON a.MovieID = b.MovieID
            GROUP   BY a.Genre
        ) sub ON    g.Genre = sub.Genre AND
                    d.rating = sub.maxRating

आपके स्कीमा डिज़ाइन में कुछ गड़बड़ है। अगर कोई Movie कई Genre हो सकते हैं साथ ही Genre कई Movie . पर हो सकता है , यह तीन टेबल का डिज़ाइन होना चाहिए।

मूवी विवरण तालिका

  • मूवीआईडी ​​(पीके)
  • मूवी का नाम
  • मूवी रेटिंग

शैली तालिका

  • GenreID (पीके)
  • शैली का नाम

मूवी_शैली तालिका

  • MovieID (FK) -- GenreID के साथ मिश्रित प्राथमिक कुंजी
  • GenreID (FK)


  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. MySQL पिछले 7 दिनों का चयन करें

  3. MySql में फ़ोन नंबरों के क्षेत्र को साफ़ करना

  4. पोस्टग्रेज में दो कॉलम के रूप में दो चुनिंदा स्टेटमेंट कैसे बनाएं?

  5. मैं MySQL में उच्चतम आईडी वाली पंक्ति का चयन कैसे कर सकता हूं?