sql >> Base de Datos >  >> RDS >> Mysql

MySQL ERROR 1349 ¿Qué me estoy perdiendo?

Te estás perdiendo el hecho de que las vistas en MySQL no permiten subconsultas en el from cláusula. Están permitidos en el select y where y having cláusulas, sin embargo.

La documentación es bastante claro:

En su caso, probablemente pueda reescribir el from cláusula como una subconsulta correlacionada en el select cláusula. También puede usar varias capas de vistas para hacer lo que quiera.

EDITAR:

Una declaración SELECT en SQL tiene las siguientes cláusulas:SELECT , FROM , WHERE , GROUP BY , HAVING y ORDER BY (según norma). Además, MySQL agrega cosas como LIMIT , y INTO OUTFILE . Puede ver esto en la forma en que MySQL describe el SELECT cláusula en la documentación . También puede ver esto en la documentación de casi cualquier base de datos.

Operaciones como join forman parte del FROM cláusula (de manera similar WITH ROLLUP es parte del GROUP BY y DESC es parte del ORDER BY ). Estas pueden parecer convenciones sintácticas arcanas, pero se vuelven importantes cuando hay una restricción como la anterior.

Quizás una de las razones de la confusión es un estilo de sangría que dice:

select . . .
from t1
inner join t2
     on . . .

Donde las declaraciones de combinación se alinean debajo de select . Esto es engañoso. Escribiría esto como:

select 
from t1 join
     t2
     on . . .

Solo el select las cláusulas se alinean bajo select.