L'errore è evidente:devi solo creare un alias per la sottoquery dopo la sua chiusura )
e usalo nel tuo ON
clausola poiché ogni tabella, derivata o reale, deve avere il proprio identificatore. Quindi, dovrai includere movie_id
nell'elenco di selezione della sottoquery per potervi partecipare. Poiché la sottoquery include già WHERE popularity = 0
, non è necessario includerlo nel ON
del join clausola.
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
Se stai utilizzando una di queste colonne nel SELECT
esterno , referenzialo tramite the_alias.movie_name
per esempio.
Aggiorna dopo aver compreso meglio il requisito:
Per ottenerne uno per gruppo a cui partecipare, puoi utilizzare un aggregato MAX()
o MIN()
sul movie_id
e raggruppalo nella sottoquery. Nessuna sottoquery LIMIT
è quindi necessario -- riceverai il primo movie_id
per nome con MIN()
o l'ultimo 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