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