Felet är tydligt -- du behöver bara skapa ett alias för underfrågan efter dess avslutande ) och använd den i din ON sats eftersom varje tabell, härledd eller verklig, måste ha sin egen identifierare. Sedan måste du inkludera movie_id i underfrågans urvalslista för att kunna gå med på den. Eftersom underfrågan redan innehåller WHERE popularity = 0 , du behöver inte inkludera det i anslutningens ON klausul.
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
Om du använder en av dessa kolumner i den yttre SELECT , referera till den via the_alias.movie_name till exempel.
Uppdatera efter att ha förstått kravet bättre:
För att få en per grupp att gå med i kan du använda en sammanlagd MAX() eller MIN() på movie_id och gruppera den i underfrågan. Ingen underfråga LIMIT är sedan nödvändigt -- du kommer att få det första movie_id per namn med MIN() eller den sista med 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