gpt4 book ai didi

python - SQLAlchemy 返回带有限制/偏移量的意外结果

转载 作者:太空宇宙 更新时间:2023-11-03 14:49:25 24 4
gpt4 key购买 nike

我有一个查询执行多个左连接,然后执行限制/偏移以用于分页目的。我的问题是限制/偏移量似乎应用于执行所有连接后返回的 行数。我想要的是将限制/偏移应用于我从查询中返回的 ORM 实例的数量。

这是一个示例查询:

result = session.query(A)\
.outerjoin(B)\
.outerjoin(C)\
.order_by(A.id)\
.offset(0).limit(100).all()

因此,如果 A 通过连接表 B 与 C 具有一对多关系,我可能会在 A 中的每行中获得 N 行。我是否需要做一些特别的事情以便对 A 的计数应用限制/偏移量实例而不是连接产生了多少行?

最佳答案

这就是 SQL 的工作原理。 This article关于 SQL 语句中的操作顺序可能很有趣。您可以在子查询中抵消和限制并加入它。 Query.from_self()在这种特殊情况下很方便,特别是因为它会自动别名:

result = session.query(A)\
.order_by(A.id)\
.offset(0).limit(100)\
.from_self()\
.outerjoin(B)\
.outerjoin(C)\
.all()

关于python - SQLAlchemy 返回带有限制/偏移量的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46977257/

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