Tengo dos tablas: 'películas' y 'usuarios'. Hay una relación n: m entre esos, que describe qué películas ha visto un usuario. Esto se describe con una tabla 'vista' Ahora quiero averiguar para un usuario dado, todas las películas que no ha visto. Mi solución actual es la siguiente:MySQL: Encontrar filas que no forman parte de una relación
SELECT *
FROM movies
WHERE movies.id NOT IN (
SELECT seen.movie_id
FROM seen
WHERE seen.user_id=123
)
Esto funciona bien, pero no parece que escalar muy bien. ¿Hay un mejor enfoque para esto?
Si no está escalando bien, su indexación no será efectiva. ¿Cuáles son tus índices? – dkretz
> Esto funciona bien, pero no parece escalar muy bien. ¿Hay un mejor enfoque para esto? ¿Has probado EXPLAIN en esta consulta? – VolkerK