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
Ada yang salah dengan desain skema Anda. Jika Movie
dapat memiliki banyak Genre
serta Genre
dapat memuat banyak Movie
, itu harus berupa desain tiga tabel.
Tabel Detail Film
- ID Film (PK)
- Nama Film
- Peringkat Film
Tabel Genre
- GenreID (PK)
- Nama Genre
Tabel Genre Film
- MovieID (FK) -- gabungan kunci utama dengan GenreID
- GenreID (FK)