我有两个表:'movies'和'users'。 它们之间存在n:m的关系,描述了用户看过哪些电影。这使用一个名为'seen'的表来描述。 现在,我想要找出给定用户未曾观看的所有电影。 我的当前解决方案如下:
SELECT *
FROM movies
WHERE movies.id NOT IN (
SELECT seen.movie_id
FROM seen
WHERE seen.user_id=123
)
这个方法运行良好,但似乎不太适合扩展。有更好的方法吗?