Błąd jest jasny — wystarczy utworzyć alias dla podzapytania po jego zamykającym ) i użyj go w swoim ON klauzula, ponieważ każda tabela, pochodna lub rzeczywista, musi mieć swój własny identyfikator. Następnie musisz dołączyć movie_id na liście wyboru podzapytania, aby móc do niego dołączyć. Ponieważ podzapytanie zawiera już WHERE popularity = 0 , nie musisz uwzględniać go w ON złączenia klauzula.
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
Jeśli używasz jednej z tych kolumn w zewnętrznym SELECT , odwołaj się do niego przez the_alias.movie_name na przykład.
Zaktualizuj po lepszym zrozumieniu wymagań:
Aby dołączyć do jednej grupy z każdej grupy, możesz użyć agregacji MAX() lub MIN() w movie_id i pogrupuj go w podzapytaniu. Brak podzapytania LIMIT jest wtedy konieczne -- otrzymasz pierwszy movie_id na nazwę za pomocąMIN() lub ostatni z 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