Respuesta corta:
- referencias a alias en la lista SELECT o
- Expresiones con alias
La única documentación que he encontrado sobre esto hasta ahora ha sido:https://bugs .mysql.com/bug.php?id=79549
En ese enlace hay lo siguiente:
[9 de diciembre de 2015 15:35] Roy Lyseng...Aquí hay un trasfondo más extenso de la decisión original:
Al contrario de las referencias a alias en subconsultas en la cláusula WHERE (y en GROUP BY, para el caso), no hay razón (excepto el cumplimiento estándar) por la que no deberíamos permitir referencias a alias en la lista SELECT , ya que deberían estar disponibles en la misma fase de ejecución de la consulta. Pero el soporte en 5.6 fue bastante arbitrario:
Dado esto:crea la tabla t1(a int, b int),
El alias en la lista SELECT no es válido:
select a+b as c,c+1 from t1;
Pero dentro de una subconsulta, la referencia a c es válida:
select a+b as c,(select c+1) from t1;
Y la subconsulta debe estar después de la definición de alias:
select (select c+1),a+b as c from t1;
Por lo tanto, es fácil decir que la compatibilidad con referencias a alias en la lista SELECT fue más bien ad-hoc. Sin embargo, intentaremos volver a implementar la solución anterior, pero sin intentar limpiar los agujeros obvios en el soporte para esta función. Pero no se volverá a implementar la referencia a alias en subconsultas en la cláusula WHERE.
Todavía estoy buscando documentación más allá del informe de error que describe esta funcionalidad en los documentos estándar; pero hasta ahora no ha habido suerte.