Fejlen er tydelig -- du skal bare oprette et alias for underforespørgslen efter dens afsluttende ) og brug den i din ON klausul, da hver tabel, afledt eller reel, skal have sin egen identifikator. Derefter skal du inkludere movie_id i underforespørgslens valgliste for at kunne deltage på den. Da underforespørgslen allerede inkluderer WHERE popularity = 0 , behøver du ikke inkludere det i joinforbindelsens 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
Hvis du bruger en af disse kolonner i den ydre SELECT , referer til den via the_alias.movie_name for eksempel.
Opdater efter at have forstået kravet bedre:
For at få én pr. gruppe at deltage i, kan du bruge en samlet MAX() eller MIN() på movie_id og grupper det i underforespørgslen. Ingen underforespørgsel LIMIT er så nødvendigt -- du vil modtage det første movie_id navn med MIN() eller den sidste 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