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