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
Hay algo mal con el diseño de su esquema. Si una Movie
puede tener muchos Genre
así como Genre
puede estar contenido en muchas Movie
, debe ser un diseño de tres mesas.
Tabla de detalles de la película
- ID de película (PK)
- Nombre de la película
- Clasificación de películas
Tabla de géneros
- ID de género (PK)
- Nombre del género
Tabla de géneros_de_películas
- MovieID (FK):clave principal compuesta con GenreID
- ID de género (FK)