Anda melewatkan fakta bahwa tampilan di MySQL tidak mengizinkan subkueri di from
ayat. Mereka diizinkan di select
dan where
dan having
klausa.
Dokumentasi cukup jelas:
Dalam kasus Anda, Anda mungkin dapat menulis ulang from
klausa sebagai subquery yang berkorelasi dalam select
ayat. Anda juga dapat menggunakan beberapa lapisan tampilan untuk melakukan apa yang Anda inginkan.
EDIT:
Pernyataan SELECT dalam SQL memiliki klausa berikut:SELECT
, FROM
, WHERE
, GROUP BY
, HAVING
, dan ORDER BY
(sesuai standar). Selain itu, MySQL menambahkan hal-hal seperti LIMIT
, dan INTO OUTFILE
. Anda dapat melihat ini dengan cara MySQL mendeskripsikan SELECT
klausa dalam dokumentasi
. Anda juga dapat melihat ini di dokumentasi untuk hampir semua database.
Operasi seperti join
adalah bagian dari FROM
klausa (sama dengan WITH ROLLUP
adalah bagian dari GROUP BY
dan DESC
adalah bagian dari ORDER BY
). Ini mungkin tampak seperti konvensi sintaksis misterius, tetapi menjadi penting ketika ada batasan seperti di atas.
Mungkin salah satu alasan kebingungan ini adalah gaya lekukan yang berbunyi seperti:
select . . .
from t1
inner join t2
on . . .
Di mana pernyataan bergabung berbaris di bawah select
. Ini menyesatkan. Saya akan menulis ini sebagai:
select
from t1 join
t2
on . . .
Hanya select
klausa berbaris di bawah select.