使用多个外键创建sqlalchemy关系/连接的问题

时间:2017-12-04 21:29:58

标签: python sqlalchemy

我有两张桌子。第一个表有一个复合主键。我想将第二个表连接到第一个表,使用这两个列作为外键。以下是显示问题的简化代码:

class Table_A(Base):
   __tablename__ = 'Table_A'
   Path = Column(String, primary_key=True)
   Name = Column(String, primary_key=True)
   Group = Column(String)

class Table_B(Base):
   __tablename__ = 'Table_B'
   Path = Column(String, ForeignKey('Table_A.Path', primary_key=True)
   Name = Column(String, ForeignKey('Table_A.Name', primary_key=True)
   Result = Column(Float)
   table_a = relationship("TableA", foreign_keys=[Path, Name])

当我尝试加载此模型时,我得到错误" AmbiguousForeignKeysError:无法确定关系Table_A.table_b上的父/子表之间的连接条件 - 有多个链接表的外键路径。指定' foreign_keys'参数,提供那些应被视为包含对父表的外键引用的列的列表。"

正如您在上面所看到的,我确实为此关系设置了foreign_keys。

额外信息 - 我试图达到我可以做的相当于此次加入的程度

select Table_B.Path, Table_B.Name, Table_A.Group, Table_B.Result
    from Table_B join Table_A
    on Table_A.Path = Table_B.Path and Table_A.Name=Table_B.Name;

0 个答案:

没有答案