加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

外部连接与SQLAlchemy中的ORM映射

发布时间:2020-12-14 06:02:02 所属栏目:Java 来源:网络整理
导读:我在SQLAlchemy中使用ORM Mapping 0.6.8. 我有三张表(A,B和C),他们之间没有外键. 我正在尝试加入表A和B,然后与C进行外连接.我期待一个名为元组,字段A,B和C,C字段有时设置为无.) 我可以通过选择两个表来轻松地完成第一次连接. (session.query(A,B) .filter(A.
我在SQLAlchemy中使用ORM Mapping 0.6.8.

我有三张表(A,B和C),他们之间没有外键.

我正在尝试加入表A和B,然后与C进行外连接.我期待一个名为元组,字段A,B和C,C字段有时设置为无.)

我可以通过选择两个表来轻松地完成第一次连接.

(session.query(A,B)
    .filter(A.some_field = B.some_other_field))

这让我得到一个名为“A”和“B”的元组.

然后我添加外连接,使其成为:

(session.query(A,B)
    .filter(A.some_field==B.some_other_field))
    .outerjoin((C,A.some_field==C.some_different_field))

结果仍然只有两个表.我无法访问C的其他字段(即使在它们存在的情况下).

做一个左外连接的正确方法是什么,以访问最右边的表的字段?

我宁可不回避基本的SQL,如果我可以避免它 – 我正在努力学习利用ORM.

解决方法

这应该工作:
(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))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读