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
Er is iets mis met uw schemaontwerp. Als een Movie
kan veel Genre
hebben evenals Genre
kan in veel Movie
. voorkomen , het zou een ontwerp met drie tabellen moeten zijn.
Tabel met filmdetails
- FilmID (PK)
- Filmnaam
- Filmwaardering
Genretabel
- GenreID (PK)
- Genrenaam
Film_genretabel
- MovieID (FK) -- samengestelde primaire sleutel met GenreID
- GenreID (FK)