Der Fehler ist klar – Sie müssen nur einen Alias für die Unterabfrage nach ihrem schließenden )
erstellen und verwenden Sie es in Ihrem ON
-Klausel, da jede abgeleitete oder reelle Tabelle ihren eigenen Bezeichner haben muss. Dann müssen Sie movie_id
einfügen in der Auswahlliste der Unterabfrage, um ihr beitreten zu können. Da die Unterabfrage bereits WHERE popularity = 0
enthält , müssen Sie es nicht in ON
des Joins einschließen Klausel.
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
Wenn Sie eine dieser Spalten im äußeren SELECT
verwenden , verweisen Sie darauf über the_alias.movie_name
zum Beispiel.
Aktualisierung nach besserem Verständnis der Anforderung:
Um einen pro Gruppe zum Beitritt zu bekommen, können Sie ein aggregiertes MAX()
verwenden oder MIN()
auf der movie_id
und gruppieren Sie es in der Unterabfrage. Keine Unterabfrage LIMIT
ist dann notwendig -- Sie erhalten die erste movie_id
pro Name mit MIN()
oder die letzte mit 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