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
Irgendetwas stimmt mit Ihrem Schemaentwurf nicht. Wenn ein Movie
kann viele Genre
haben sowie Genre
kann in vielen Movie
enthalten sein , es sollte ein Drei-Tabellen-Design sein.
MovieDetails-Tabelle
- MovieID (PK)
- Filmname
- Filmbewertung
Genretabelle
- GenreID (PK)
- GenreName
Movie_Genre-Tabelle
- MovieID (FK) – zusammengesetzter Primärschlüssel mit GenreID
- GenreID (FK)