gpt4 book ai didi

python - 按 OneToMany Elixir 关系的计数排序

转载 作者:太空宇宙 更新时间:2023-11-04 09:17:05 25 4
gpt4 key购买 nike

我正在为 ORM 使用 Elixir,但我在尝试按关系排序时遇到问题。

我想做的是获取一个按帖子数量排序的用户列表。我已经尝试过诸如

之类的方法
User.query.join(User.posts).order_by(func.count(User.posts)).all()

没有任何成功。

这是我的 Elixir 实体:

class User(Entity):
username = Field(Unicode(100))
posts = OneToMany('Post', inverse='user')


class Post(Entity):
content = Field(Unicode(20000))
user = ManyToOne('User')

最佳答案

这是一个常见问题,ORM 教程中有一个示例查询:http://www.sqlalchemy.org/docs/orm/tutorial.html#using-subqueries .只需将它所说的 order_by(User.id) 更改为 order_by(stmt.c.address_count):

>>> from sqlalchemy.sql import func
>>> stmt = session.query(Address.user_id, func.count('*').\
... label('address_count')).\
... group_by(Address.user_id).subquery()

>>> for u, count in session.query(User, stmt.c.address_count).\
... outerjoin(stmt, User.id==stmt.c.user_id).order_by(stmt.c.address_count):
... print u, count

关于python - 按 OneToMany Elixir 关系的计数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7954696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com