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 , трябва да бъде дизайн с три маси.

Таблица с подробности за филма

  • MovieID (PK)
  • Име на филма
  • Оценка на филми

Таблица с жанрове

  • Идентификатор на жанра (PK)
  • Име на жанр

Таблица за жанрове на филми

  • MovieID (FK) – комбиниран първичен ключ с 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. Колко начина за импортиране на данни в mysql

  2. Попълване на PHP масив от While Loop

  3. Flask-Sqlalchemy Липсващият BEGIN изглежда причинява несинхронизирани сесии

  4. Как да подготвим изявление за заявка за актуализиране?

  5. Турските знаци не се показват правилно