我有一个查询,我找到了一个可行的解决方案。我不确定我是否正确执行了查询,我希望能找到答案。表格如下所示:
查询是:
q = session.query(Person).outerjoin(PetOwner).join(Animal).options(contains_eager("petowner_set"), contains_eager("petowner_set.animal"))
将其与宠物主人联系起来的人有关系。
person
如果连接 from topetowner
和 join from petowner
toanimal
都是内连接或外连接,这将很容易。但是,从person
to连接petowner
是外连接,从petowner
to连接animal
是内连接。为此,我向contains_eager
选项添加了两个调用。
这是完成此任务的正确方法吗?