Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL ERRO 1349 O que estou perdendo?


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.