Chcesz maksimum grupowe :
SELECT * FROM Video JOIN (
SELECT VideoTags.tag_id, MAX(points) points
FROM Video JOIN VideoTags ON Video.id = VideoTags.video_id
GROUP BY VideoTags.tag_id
) t USING (points) JOIN Tags ON t.tag_id = Tags.id
Zobacz go na sqlfiddle .
Pamiętaj, że to zapytanie zwraca wszystkie filmy mające maksymalną liczbę punktów w każdym tagu, więc więcej niż jeden rekord zostanie zwrócony dla powiązanych tagów. Jeśli chcesz zwrócić tylko jeden zapis w takich sytuacjach, określ, jak określić film, który powinien zostać zwrócony.