SQLAlchemy:在_'中过滤'没有效果

时间:2015-11-28 13:47:52

标签: sqlalchemy

此查询中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因为我想一次加载所有数据。

1 个答案:

答案 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应该去哪里非常重要。