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