SQLAlchemy Core - Usando Aliases
O alias em SQL corresponde a uma versão “renomeada” de uma tabela ou instrução SELECT, que ocorre sempre que você diz “SELECT * FROM table1 AS a”. O AS cria um novo nome para a tabela. Os aliases permitem que qualquer tabela ou subconsulta seja referenciada por um nome exclusivo.
No caso de uma tabela, isso permite que a mesma tabela seja nomeada na cláusula FROM várias vezes. Ele fornece um nome pai para as colunas representadas pela instrução, permitindo que sejam referenciadas em relação a esse nome.
Em SQLAlchemy, qualquer Table, construção select () ou outro objeto selecionável pode ser transformado em um alias usando o From Clause.alias()método, que produz uma construção Alias. A função alias () no módulo sqlalchemy.sql representa um alias, como normalmente aplicado a qualquer tabela ou sub-seleção dentro de uma instrução SQL usando a palavra-chave AS.
from sqlalchemy.sql import alias
st = students.alias("a")
Este alias agora pode ser usado na construção select () para se referir à tabela de alunos -
s = select([st]).where(st.c.id>2)
Isso se traduz em expressão SQL da seguinte forma -
SELECT a.id, a.name, a.lastname FROM students AS a WHERE a.id > 2
Agora podemos executar esta consulta SQL com o método execute () do objeto de conexão. O código completo é o seguinte -
from sqlalchemy.sql import alias, select
st = students.alias("a")
s = select([st]).where(st.c.id > 2)
conn.execute(s).fetchall()
Quando a linha de código acima é executada, ele gera a seguinte saída -
[(3, 'Komal', 'Bhandari'), (4, 'Abdul', 'Sattar'), (5, 'Priya', 'Rajhans')]