Chcete skupinové maximum :
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
Podívejte se na sqlfiddle .
Všimněte si, že tento dotaz vrací vše videa s maximálním počtem bodů v každém tagu, takže u svázaných tagů bude vrácen více než jeden záznam. Pokud si v takových situacích přejete vrátit pouze jeden záznam, uveďte prosím, jak určit video, které má být vráceno.