Vous voulez le maximum par groupe :
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
Voir sur sqlfiddle .
Notez que cette requête renvoie tous vidéos ayant le nombre maximum de points dans chaque balise, donc plus d'un enregistrement sera renvoyé pour les balises liées. Si vous souhaitez renvoyer un seul enregistrement dans de telles situations, veuillez spécifier comment déterminer la vidéo qui doit être renvoyée.