1

所以我有一个查询...

qry = Query(models.UserList).filter(...)

models.UserList包含一个 mixin 方法,它将返回count一个相关表

所以我想做的是......

qry = qry.order_by(models.UserList.contactCount)

但是,这当然会产生无效的 sql。

那么我该怎么做

qry.add_column((this.contactCount).label("contactCount"))

this.contactCount只是糟糕的伪代码,但希望你明白这一点。

我一直在研究如何做到这一点,但 sqlalchemy 文档并不是最容易找到东西的东西。

任何帮助表示赞赏

4

1 回答 1

1

您可以为此使用 acolumn_property或 a hybrid_property。例如:

class UserList(Base):
    ...
    contactCount = column_property(
        select(
            [func.count()],
            contact_id == Contact.id,
        ).label('contactCount'),
        deferred=True,
    )
于 2013-01-30T01:50:24.710 回答