문제 설명
SQLAlchemy: 'in'에 대한 필터는 효과가 없습니다. (SQLAlchemy: Filter on 'in' has no effect)
이 쿼리의 filter
문의 in_
은 아무 효과가 없는 것 같은데 왜 안되는지 잘 모르겠습니다. 올바른 위치에 있습니까?
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:
This was hard to come by in the official docs, but @Imzcig was right, I was lacking the join of C
in the example. It should have been:
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()
I'm showing a not so trivial example since it's important to see where the join
should go.
(by Berco Beute、Berco Beute)