如何在 SQLAlchemy 中进行嵌套连接?我试图运行的语句是
SELECT a.col1, a.col2, c.col3
FROM a
LEFT OUTER JOIN (b INNER JOIN c ON c.col4 = b.col4) ON b.col5 = a.col5
Run Code Online (Sandbox Code Playgroud)
我需要显示 中的所有记录A,但仅将它们与 中的记录B连接JOIN起来C。
到目前为止我的代码是
session.query(a.col1, a.col2, c.col3).outerjoin(b, b.col5 == a.col5).all()
Run Code Online (Sandbox Code Playgroud)
这让我得到了我所需要的大部分内容,A记录在缺少记录的地方显示空值B;然而,太多的B人进来了,我需要限制他们。但是,如果我只是添加另一个连接,即
session.query(a.col1, a.col2, c.col3).outerjoin(b, b.col5 == a.col5).join(c, b.col4 == c.col4).all()
Run Code Online (Sandbox Code Playgroud)
它会删除 中所有A具有空值的记录B。
我应该指出,我无法直接加入,A因为C两者之间的唯一联系是通过B。