Du missar det faktum att vyer i MySQL inte tillåter undersökningar i from klausul. De är tillåtna i select och where och having klausuler dock.
dokumentationen är ganska tydligt:
I ditt fall kan du förmodligen skriva om from sats som en korrelerad underfråga i select klausul. Du kan också använda flera lager av vyer för att göra vad du vill.
EDIT:
En SELECT-sats i SQL har följande satser:SELECT , FROM , WHERE , GROUP BY , HAVING , och ORDER BY (enligt standarden). Dessutom lägger MySQL till saker som LIMIT och INTO OUTFILE . Du kan se detta på det sätt som MySQL beskriver SELECT klausul i dokumentationen
. Du kan också se detta i dokumentationen för nästan vilken databas som helst.
Operationer som join är en del av FROM sats (på samma sätt WITH ROLLUP är en del av GROUP BY och DESC är en del av ORDER BY ). Dessa kan verka som svåra syntaktiska konventioner, men det blir viktigt när det finns en begränsning som den ovan.
En anledning till förvirringen är kanske en indragsstil som går så här:
select . . .
from t1
inner join t2
on . . .
Där join-satserna raderas under select . Detta är missvisande. Jag skulle skriva detta som:
select
from t1 join
t2
on . . .
Endast select satser radas upp under select.