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