Odd*_*ing 13 orm join sqlalchemy outer-join
我在SQLAlchemy 0.6.8中使用ORM Mapping.
我有三个表(A,B和C),它们之间没有外键.
我正在尝试连接表A和B,然后使用C离开外连接.我期待一个名为元组,字段A,B和C - C字段有时设置为None.)
只需选择两个表格,我就可以轻松完成第一次连接.
(session.query(A, B)
.filter(A.some_field = B.some_other_field))
Run Code Online (Sandbox Code Playgroud)
这让我得到一个带有字段A和B的NamedTuple.
然后我添加外连接,使其成为:
(session.query(A, B)
.filter(A.some_field==B.some_other_field))
.outerjoin((C, A.some_field==C.some_different_field))
Run Code Online (Sandbox Code Playgroud)
结果仍然只有两个表.我无法访问C的其他字段(即使在它们存在的情况下).
执行左外连接的正确方法是什么,才能访问最右边的表的字段?
如果我可以避免它,我宁愿不回退到基本的SQL - 我正在努力学习利用ORM.
say*_*yap 15
这应该工作:
(session.query(A)
.join(B, A.some_field == B.some_other_field)
.outerjoin(C, A.some_field == C.some_different_field)
.add_entity(B)
.add_entity(C))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10226 次 |
| 最近记录: |