El error es claro:solo necesita crear un alias para la subconsulta después de cerrar ) y úsalo en tu ON ya que cada tabla, derivada o real, debe tener su propio identificador. Luego, deberá incluir movie_id en la lista de selección de la subconsulta para poder unirse a ella. Dado que la subconsulta ya incluye WHERE popularity = 0 , no necesita incluirlo en el ON de la unión cláusula.
LEFT JOIN (
SELECT
movie_id,
movie_name
FROM movies
WHERE popularity = 0
ORDER BY movie_name
LIMIT 1
) the_alias ON t1.movie_id = the_alias.movie_id
Si está utilizando una de estas columnas en el exterior SELECT , haga referencia a él a través de the_alias.movie_name por ejemplo.
Actualización después de comprender mejor el requisito:
Para obtener uno por grupo al que unirse, puede usar un MAX() agregado o MIN() en el movie_id y agrúpelo en la subconsulta. Sin subconsulta LIMIT entonces es necesario:recibirá el primer movie_id por nombre con MIN() o el último con MAX() .
LEFT JOIN (
SELECT
movie_name,
MIN(movie_id) AS movie_id
FROM movies
WHERE popularity = 0
GROUP BY movie_name
) the_alias ON t1.movie_id = the_alias.movie_id