如何使用 sqlalchemy 关系实现多个连接
Posted
技术标签:
【中文标题】如何使用 sqlalchemy 关系实现多个连接【英文标题】:How to implement multiple joins with sqlalchemy relationships 【发布时间】:2017-04-29 19:38:59 【问题描述】:我有一个(对你们大多数人来说)关于 sqlAlchemy 和 Python 的简单问题。我有四个具有 1 对 N 关系的表,我想加入这些表。 我用#??????标记了我的问题在我的示例代码中。
有谁知道我可以如何实现“#??????” ?谢谢!
class A(Base):
__tablename__ = "a"
id = Column(Integer, primary_key=True)
allMy_B = relationship("B")
allMy_C = # ??????
allMy_D = # ??????
class B(Base):
__tablename__ = "b"
id = Column(Integer, primary_key=True)
my_A_parent = Column(Integer, ForeignKey("a.id"))
allMy_C = relationship("C")
allMy_D = # ??????
class C(Base):
__tablename__ = "c"
id = Column(Integer, primary_key=True)
my_B_parent = Column(Integer, ForeignKey("b.id"))
allMy_D = relationship("D")
class D(Base):
__tablename__ = "d"
id = Column(Integer, primary_key=True)
my_C_parent = Column(Integer, ForeignKey("c.id"))
【问题讨论】:
【参考方案1】:我有一个部分答案:对于第一个空白,您可以使用secondaryjoi 表:
allMy_C =relationship(C, secondary = B)
但是,对于 d,您需要创建一个连接 B 和 C 的可选择项,我不记得该怎么做。因此,我将此标记为社区 Wiki 问题,其他人可以进行编辑以填写其余部分。
【讨论】:
以上是关于如何使用 sqlalchemy 关系实现多个连接的主要内容,如果未能解决你的问题,请参考以下文章