1
我试图让一些查询性能得到改进,但生成的查询看起来并不像我期望的那样。与连接表过滤
结果使用检索:
query = session.query(SomeModel).
options(joinedload_all('foo.bar')).
options(joinedload_all('foo.baz')).
options(joinedload('quux.other'))
我想要做的就是在桌子上过滤器通过“第一”的加入,但这种方式不工作:
query = query.filter(FooModel.address == '1.2.3.4')
它的结果在附加到查询的子句中:
WHERE foos.address = '1.2.3.4'
这不会以正确的方式进行过滤,因为生成的j附件附表foos_1
和foos_2
。如果我手动尝试该查询,但将过滤条款更改为:
WHERE foos_1.address = '1.2.3.4' AND foos_2.address = '1.2.3.4'
它工作正常。这个问题当然是 - 我怎么才能用sqlalchemy本身来实现呢?
SA哪个版本您使用的?在0.7.4中,'Foo'只连接一次。 – van 2012-03-25 09:41:19