У меня есть две таблицы: "фильмы" и "пользователи". Там существует связь n: m между ними, описывая, какие фильмы пользователь видел. Это описывается таблицей "видели" Теперь я хочу узнать для данного пользователя все фильмы, которые он не видел. Мое текущее решение выглядит так:
SELECT *
FROM movies
WHERE movies.id NOT IN (
SELECT seen.movie_id
FROM seen
WHERE seen.user_id=123
)
Это прекрасно работает, но, похоже, не очень хорошо масштабируется. Есть ли лучший подход к этому?