我尝试做一个多重连接,其中每个后续的表都使用relationship()
属性上的内部join()
连接先前连接的表,但是我想要一个outerjoin()
用于Table4。在
查询如下:
self.s.query(Table1, Table2, Table3, Table4) \
.join('relationship2', 'relationship3') \
.outerjoin('relationship4') \
.all()
结果是Table4试图连接到Table1,而不是根据需要在Table3.relationship4
上连接,从而产生InvalidRequestError:
如何指定给outerjoin()
以使用表3中的自然外键关系?在
因此,如果直接指定更健壮的model类,而不是尝试在
relationship()
属性名上联接,这就非常简单了。我相信只有在两个表之间有一个外键关系时,这才有效。SQLA join docs here.例如,这将生成我要查找的内容,其中表4显示为
None
,其中没有匹配的行:相关问题 更多 >
编程相关推荐