L'utilisation de “alias” dans SQLAlchemy ORM
De la SQLAlchemy ORM Tutoriel:
Vous pouvez contrôler les noms à l'aide de l'étiquette() construire scalaires d'attributs et un alias pour la classe des constructions:
>>> from sqlalchemy.orm import aliased
>>> user_alias = aliased(User, name='user_alias')
>>> for row in session.query(user_alias, user_alias.name.label('name_label')).all():
... print row.user_alias, row.name_label
Cela semble être beaucoup plus à taper et beaucoup moins lisible que la plaine de la classe instrumentation descripteurs:
>>> for row in session.query(User, User.name).all():
... print row.User, row.name
Mais elle doit exister pour une raison. Comment doit-il être utilisé? Quels sont les bons cas d'utilisation?
OriginalL'auteur Wang Dingwei | 2011-03-18
Vous devez vous connecter pour publier un commentaire.
aliased()
oualias()
sont utilisés chaque fois que vous devez utiliser leSELECT ... FROM my_table my_table_alias ...
construire en SQL, surtout lors de l'utilisation de la même table plus d'une fois dans une requête (auto-jointures, avec ou sans tables supplémentaires). Vous avez aussi besoin de faire un alias de sous-requêtes dans certains cas.Il y a un exemple dans la documentation: http://www.sqlalchemy.org/docs/orm/query.html?highlight=aliased#sqlalchemy.orm.util.AliasedClass
OriginalL'auteur jd.
@Jd. dit,surtout lors de l'utilisation de la même table plus d'une fois dans une requête.
Exemple:
OriginalL'auteur Eds_k