【发布时间】:2012-05-20 21:49:05
【问题描述】:
如果我有一个 SQLAlchemy ORM 查询:
admin_users = Session.query(User).filter_by(is_admin=True)
是否可以修改该查询返回的列?
例如,我可以只选择User.id 列,并在子查询中使用它:
admin_email_addresses = Session.query(EmailAddress)\
.filter(EmailAddress.user_id.in_(admin_users.select_columns(User.id))
注意:.values() 方法将不起作用,因为它执行查询并返回一个可迭代的结果(例如,EmailAddress.user_id.in_(admin_users.values(User.id)) 将执行两个查询,而不是一个)。
我知道我可以将第一个查询修改为 Session.query(User.id),但我特别想知道如何修改查询返回的列。
【问题讨论】:
标签: python orm sqlalchemy