Uniká vám, že pohledy v MySQL neumožňují poddotazy v from doložka. Jsou povoleny v select a where a having doložky, nicméně.
dokumentace je zcela jasné:
Ve vašem případě pravděpodobně můžete přepsat from klauzule jako korelovaný dílčí dotaz v select doložka. K tomu, co chcete, můžete také použít více vrstev zobrazení.
EDIT:
Příkaz SELECT v SQL má následující klauzule:SELECT , FROM , WHERE , GROUP BY , HAVING a ORDER BY (podle standardu). Kromě toho MySQL přidává věci jako LIMIT a INTO OUTFILE . Můžete to vidět tak, jak MySQL popisuje SELECT klauzule v dokumentaci
. Můžete to také vidět v dokumentaci k téměř každé databázi.
Operace jako join jsou součástí FROM klauzule (podobně WITH ROLLUP je součástí GROUP BY a DESC je součástí ORDER BY ). Může se to zdát jako tajemné syntaktické konvence, ale je to důležité, když existuje omezení, jako je to výše.
Možná je jedním z důvodů zmatku styl odsazení, který vypadá takto:
select . . .
from t1
inner join t2
on . . .
Kde se příkazy spojení seřadí pod select . To je zavádějící. Napsal bych to takto:
select
from t1 join
t2
on . . .
Pouze select klauzule seřadit pod select.