これにより、指定された<current_movie_id>
と少なくとも1つのタグを共有するすべての映画のリストが返されます。 共通のタグの数を減らして並べ替える
SELECT movie.*, count(DISTINCT similar.tag) as shared_tags FROM movie INNER JOIN
( tagged AS this_movie INNER JOIN tagged AS similar USING (tag) )
ON similar.movie = movie.id
WHERE this_movie.movie=<current_movie_id>
AND movie.id != this_movie.movie
GROUP BY movie.id
ORDER BY shared_tags DESC
それがあなたに何かを働かせることを願っています