SQLAlchemy Core: uso de alias
El alias en SQL corresponde a una versión "renombrada" de una tabla o instrucción SELECT, que ocurre cada vez que dice "SELECT * FROM table1 AS a". El AS crea un nuevo nombre para la tabla. Los alias permiten que cualquier tabla o subconsulta sea referenciada por un nombre único.
En el caso de una tabla, esto permite nombrar la misma tabla en la cláusula FROM varias veces. Proporciona un nombre principal para las columnas representadas por la declaración, lo que permite hacer referencia a ellas en relación con este nombre.
En SQLAlchemy, cualquier construcción Table, select () u otro objeto seleccionable se puede convertir en un alias usando el From Clause.alias()método, que produce una construcción Alias. La función alias () en el módulo sqlalchemy.sql representa un alias, como se aplica normalmente a cualquier tabla o sub-selección dentro de una declaración SQL utilizando la palabra clave AS.
from sqlalchemy.sql import alias
st = students.alias("a")
Este alias ahora se puede usar en la construcción select () para referirse a la tabla de estudiantes -
s = select([st]).where(st.c.id>2)
Esto se traduce en una expresión SQL de la siguiente manera:
SELECT a.id, a.name, a.lastname FROM students AS a WHERE a.id > 2
Ahora podemos ejecutar esta consulta SQL con el método execute () del objeto de conexión. El código completo es el siguiente:
from sqlalchemy.sql import alias, select
st = students.alias("a")
s = select([st]).where(st.c.id > 2)
conn.execute(s).fetchall()
Cuando se ejecuta la línea de código anterior, genera la siguiente salida:
[(3, 'Komal', 'Bhandari'), (4, 'Abdul', 'Sattar'), (5, 'Priya', 'Rajhans')]