此查询中in_
语句中的filter
似乎没有效果,我不确定为什么不这样做。它在正确的位置吗?
session.query(A).options(subqueryload(A.b).subqueryload(B.c))\
.options(subqueryload(X.y).subqueryload(Y.z))\
.filter(C.key.in_([1,2,3]))\
.all()
我正在执行subqueryload
因为我想一次加载所有数据。
答案 0 :(得分:0)
这在官方文档中很难得到,但@Imzcig是对的,我在示例中缺少C
的加入。应该是:
session.query(A) \
.options( \
subqueryload(A.b) \
.subqueryload(B.c)) \
.join(B.c) \
.options( \
subqueryload(X.y) \
.subqueryload(Y.z)) \
.filter(C.key.in_([1,2,3])) \
.all()
我展示了一个不那么琐碎的例子,因为看看join
应该去哪里非常重要。