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
Der er noget galt med dit skemadesign. Hvis en Movie
kan have mange Genre
samt Genre
kan indeholde på mange Movie
, det skal være et design med tre borde.
Tabel med filmdetaljer
- Film-id (PK)
- Filmnavn
- MovieRating
Genre-tabel
- GenreID (PK)
- Genrenavn
Tabel over filmgenre
- Film-ID (FK) – sammensat primær nøgle med GenreID
- GenreID (FK)