考虑一个带有关系的简单 SQLAlchemy 模型:
class User(Base):
__tablename__ == 'users'
friends = relationship('User', secondary=friend,
primaryjoin=id == friend.c.to_id,
secondaryjoin=id == friend.c.from_id,
order_by=friends.c.id,
lazy='subquery')
在某些病态情况下,用户可能有很多 friend ,从而使此查询非常昂贵:
user_friends = user.friends
我怎样才能执行相同的子查询,但是例如请求特定的 order_by
并限制为 N
对象?我想做这样的事情:
some_friends = user.friends.order_by('some_field').limit(10)
但我无法从文档中了解如何在子查询上配置这些查询选项。
停止将此问题标记为重复问题,所谓的重复问题与处理子查询无关。
最佳答案
事实上,根据@malan的建议,如果没有明确需要子查询
,那么使用lazy='dynamic'
是这种情况下最简单的解决方案。
关于python - 在 SQLAlchemy 中过滤大型关系子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54863043/