【发布时间】:2020-10-13 07:25:17
【问题描述】:
正如我在回答中提到的,这是错误的方法。
我的声明:
db.session.query(
m.SiteServicePrice, func.max(m.SiteServicePrice.created).label('latest')).filter(
m.SiteServicePrice.site_id == 2001).group_by(m.SiteServicePrice.service_id).all()
我想取回 m.SiteServicePrice 对象列表,而不是元组列表。
这个:
[<SiteServicePrice(site_id:2001 service_id:12 created:2019-01-30 03:25:31)>,
<SiteServicePrice(site_id:2001 service_id:21 created:2019-01-30 03:25:31)>,
<SiteServicePrice(site_id:2001 service_id:37 created:2019-01-30 03:25:31)>]
而不是这个:
[(<SiteServicePrice(site_id:2001 service_id:12 created:2019-01-30 03:25:31)>, datetime.datetime(2020, 5, 28, 22, 31, 35)),
(<SiteServicePrice(site_id:2001 service_id:21 created:2019-01-30 03:25:31)>, datetime.datetime(2020, 5, 28, 22, 31, 54)),
(<SiteServicePrice(site_id:2001 service_id:37 created:2019-01-30 03:25:31)>, datetime.datetime(2020, 5, 28, 22, 32, 15)))]
有没有办法将func.max(m.SiteServicePrice.created) 保留为查询的一部分,并指示 SQLAlchemy 不要将其包含在结果中?
我知道我可以使用列表推导或其他方式从结果中提取 m.SiteServicePrice 对象,但我很好奇是否有办法使用 SQLAlchemy 来做到这一点。
【问题讨论】:
标签: python sql sqlalchemy