実用的な解決策を見つけたクエリがあります。クエリを適切に実行しているかどうかわからないので、知りたいと思っていました。テーブルは次のように表示されます。
クエリは次のとおりです。
q = session.query(Person).outerjoin(PetOwner).join(Animal).options(contains_eager("petowner_set"), contains_eager("petowner_set.animal"))
ペットの所有者にそれを接続する人に関係があります。
からへの結合 ANDからperson
への結合が両方とも内部結合または両方の外部結合である場合は簡単です。ただし、 からへの結合は外部結合であり、 からへの結合は内部結合です。これを実現するために、オプションに 2 つの呼び出しを追加しました。petowner
petowner
animal
person
petowner
petowner
animal
contains_eager
これはこれを達成する正しい方法ですか?