Kesalahannya jelas -- Anda hanya perlu membuat alias untuk subkueri setelah ) penutupnya dan gunakan di ON . Anda klausa karena setiap tabel, diturunkan atau nyata, harus memiliki pengenalnya sendiri. Kemudian, Anda harus menyertakan movie_id dalam daftar pilih subquery untuk dapat bergabung di dalamnya. Karena subquery sudah menyertakan WHERE popularity = 0 , Anda tidak perlu memasukkannya ke dalam ON . gabungan klausa.
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
Jika Anda menggunakan salah satu kolom ini di bagian luar SELECT , referensikan melalui the_alias.movie_name misalnya.
Perbarui setelah memahami persyaratan dengan lebih baik:
Untuk mendapatkan satu per grup untuk bergabung, Anda dapat menggunakan MAX() aggregate agregat atau MIN() pada movie_id dan mengelompokkannya dalam subquery. Tidak ada subkueri LIMIT kemudian diperlukan -- Anda akan menerima movie_id pertama per nama denganMIN() atau yang terakhir dengan 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