SQLAlchemy:如何正确使用group_by()(only_full_group_by)?

问题描述 投票:0回答:1

我正在尝试将[[SQLAlchemy的group_by()函数与mysql+mysqlconnector引擎一起使用:

rows = session.query(MyModel) \ .order_by(MyModel.published_date.desc()) \ .group_by(MyModel.category_id) \ .all()
它与SQLite一起正常工作,但是对于MySQL,我收到此错误:

[42000][1055] Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column '...' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

我知道how to solve it in plain SQL,但我想利用SQLAlchemy的优点。

SQLAlchemy的正确解决方案是什么?

提前感谢

python mysql sql sqlalchemy greatest-n-per-group
1个回答
0
投票
形成具有良好定义的行为的查询的一种方法是使用LEFT JOIN,每MyModel查找category_id行,但没有匹配的行具有更大的published_date
© www.soinside.com 2019 - 2024. All rights reserved.