Elixir 0.7.1 と SQLAlchemy 0.7.8 を使用して、次のような多対多の関係を持つモデルを作成しました。
from elixir import *
class MyModel(Entity):
name = Field(Unicode(30))
related = ManyToMany('MyModel')
さて、これらについて任意のクエリがある場合は、次のように言います
q1 = MyModel.query.filter(MyModel.name.like("%Bob%"))
次に、 内のオブジェクトのいずれかに関連する個別の MyModel オブジェクトのフラット リストを返す別のクエリを作成したいと考えていますq1
。つまり、もし私が持っていたら
q1.all() == [m1, m2, m3]
次に、 、、の結合で構成されるフラット リストを返すクエリq2
(おそらくサブクエリとして) が必要です。これは、最初に実行してから、残りを Python リスト操作にドロップダウンするだけで簡単に実行できますが、多くのオブジェクトを返す場合は、より高速な方法があるようです。これを行う方法について何か考えはありますか?多対多の関係のために、Elixir によって生成された中間テーブルに対して何らかの結合を使用する必要がありますか?q1
m1.related
m2.related
m3.related
q1
q1
ありがとう!