Пропускате факта, че изгледите в MySQL не позволяват подзаявки в from клауза. Те са разрешени в select и where и having клаузи обаче.
документация е съвсем ясно:
Във вашия случай вероятно можете да пренапишете from клауза като корелирана подзаявка в select клауза. Можете също така да използвате няколко слоя изгледи, за да правите това, което искате.
РЕДАКТИРАНЕ:
Оператор SELECT в SQL има следните клаузи:SELECT , FROM , WHERE , GROUP BY , HAVING и ORDER BY (според стандарта). Освен това MySQL добавя неща като LIMIT и INTO OUTFILE . Можете да видите това по начина, по който MySQL описва SELECT клауза в документацията
. Можете също да видите това в документацията за почти всяка база данни.
Операции като join са част от FROM клауза (подобно на WITH ROLLUP е част от GROUP BY и DESC е част от ORDER BY ). Това може да изглежда като тайнствени синтактични конвенции, но става важно, когато има ограничение като това по-горе.
Може би една от причините за объркването е стилът на отстъп, който звучи така:
select . . .
from t1
inner join t2
on . . .
Където операторите за присъединяване се подреждат под select . Това е подвеждащо. Бих написал това като:
select
from t1 join
t2
on . . .
Само select клаузите се подреждат под select.