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