繁体   English   中英

按一对多药剂关系计数

[英]Order by Count of OneToMany Elixir Relationship

我将Elixir用于ORM,但尝试按关系订购时遇到问题。

我想做的是获取按用户帖子数排序的用户列表。 我尝试了诸如

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM