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
Det är något fel med din schemadesign. Om en Movie
kan ha många Genre
samt Genre
kan finnas på många Movie
, bör det vara en design med tre bord.
Tabell med filmdetaljer
- Film-ID (PK)
- Filmnamn
- MovieRating
Genretabell
- GenreID (PK)
- Genrenamn
Tabell för filmgenre
- MovieID (FK) – sammansatt primärnyckel med GenreID
- GenreID (FK)