Você está perdendo o fato de que as visualizações no MySQL não permitem subconsultas no
from
cláusula. Eles são permitidos no select
e where
e having
cláusulas, no entanto. A documentação é bem claro:
No seu caso, você provavelmente pode reescrever o
from
cláusula como uma subconsulta correlacionada no select
cláusula. Você também pode usar várias camadas de visualizações para fazer o que quiser. EDITAR:
Uma instrução SELECT em SQL tem as seguintes cláusulas:
SELECT
, FROM
, WHERE
, GROUP BY
, HAVING
e ORDER BY
(de acordo com o padrão). Além disso, o MySQL adiciona coisas como LIMIT
, e INTO OUTFILE
. Você pode ver isso da maneira que o MySQL descreve o SELECT
cláusula na documentação
. Você também pode ver isso na documentação de quase qualquer banco de dados. Operações como
join
fazem parte do FROM
cláusula (da mesma forma WITH ROLLUP
faz parte do GROUP BY
e DESC
faz parte do ORDER BY
). Essas podem parecer convenções sintáticas arcanas, mas se tornam importantes quando há uma restrição como a acima. Talvez uma razão para a confusão seja um estilo de recuo que é assim:
select . . .
from t1
inner join t2
on . . .
Onde as instruções de junção se alinham sob o
select
. Isso é enganoso. Eu escreveria isso como:select
from t1 join
t2
on . . .
Apenas o
select
cláusulas se alinham sob o select.