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