我遇到了一个困扰我一整天的问题。我正在使用flask/flask-sqlalchemy/postgresql,我想这样做:
published_sites = msg_published.query \
.filter( and_(*filter_clause) ) \
.group_by( msg_published.site_id ) \
.order_by( order_clause ) \
.paginate( page_no, per_page, error_out = False )
但是在 mysql 中是可以的,而在 postgresql 中是错误的,并且在 group by 子句或聚合函数中要求除 site_id 之外的其他字段,我知道 postgresql 在 SQL 上比 mysql 更严格,所以我必须选择msg_published 的查询对象中的 site_id,但在纯 sqlalchemy 中我可以这样做:
published_sites = session.query( msg_published.site_id ) \
.filter( and_(*filter_clause) ) \
.group_by( msg_published.site_id ) \
.order_by( order_clause ) \
.paginate( page_no, per_page, error_out = False )
在flask-sqlalchemy中,如何让它工作?