SQLAlchemy:Filter on';在';无效

SQLAlchemy:Filter on';在';无效,sqlalchemy,Sqlalchemy,此查询中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() 我正在做子查询加载,因为我想一次加载所有数据。这在官方文档中很难找到,但是@Imzcig是对的,我在示例中缺少C的连接。应

此查询中
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()

我正在做
子查询加载
,因为我想一次加载所有数据。

这在官方文档中很难找到,但是@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()

我展示了一个不那么简单的示例,因为查看
连接的位置非常重要。

如果我错了,请纠正我,您不是在C中查询,对吗?也没有定义连接或类似的东西。无论如何,我建议你提供一个更具体、更抽象的例子。如果有可以复制和调试的东西,那么帮助您会更容易。谢谢