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