Du vill ha gruppvis maximalt :
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
Se den på sqlfiddle .
Observera att denna fråga returnerar alla videor som har det maximala antalet poäng inom varje tagg, så mer än en post kommer att returneras för kopplade taggar. Om du bara vill returnera en post i sådana situationer, vänligen ange hur du bestämmer vilken video som ska returneras.