Python SQLAlchemy+;Flask:通过一组表的多对多自参考关系

Python SQLAlchemy+;Flask:通过一组表的多对多自参考关系,python,flask,sqlalchemy,Python,Flask,Sqlalchemy,我必须从一个奇怪的数据库中提取一些信息,为此,我需要一个自我引用的多对多关系。下表列出了这些关系: class A(db.Model): __tablename__ = 'A' a_id = db.Column(db.Integer, primary_key=True) class B(db.Model): __tablename__ = 'B' a_id = db.Column(db.Integer, db.ForeignKey(A.a_id), prim

我必须从一个奇怪的数据库中提取一些信息,为此,我需要一个自我引用的多对多关系。下表列出了这些关系:

class A(db.Model):
    __tablename__ = 'A'

    a_id = db.Column(db.Integer, primary_key=True)

class B(db.Model):
    __tablename__ = 'B'

    a_id = db.Column(db.Integer, db.ForeignKey(A.a_id), primary_key=True)
    c_id = db.Column(db.Integer, db.ForeignKey(C.c_id), primary_key=True)

class C(db.Model):
    __tablename__ = 'C'

    c_id = db.Column(db.Integer, primary_key=True)

class D(db.Model):
    __tablename__ = 'D'

    a_id = db.Column(db.Integer, db.ForeignKey(A.a_id), primary_key=True)
    c_id = db.Column(db.Integer, db.ForeignKey(C.c_id), primary_key=True)
所以,A有另一个A到B,到C,到D。下面是我试图解决的问题:

class A(db.Model):
    __tablename__ = 'A'

    a_id = db.Column(db.Integer, primary_key=True)
    another_a = db.relationship('A', secondary='join(B, D, D.c_id == B.c_id).join(A, D.a_id == A.a_id)')
因此,我收到以下错误:

AmbiguousForeignKeyError:无法确定之间的联接条件 关系生成上的父/子表。已升级的\u生成-有 通过辅助表“B”链接表的多个外键路径 在“B”中加入“C”。在“D”中加入“A”。在“D”中加入“C”。在“A”中加入“A”。 指定'foreign_keys'参数,提供这些列的列表 应将其视为包含来自 将辅助表添加到每个父表和子表

有人能帮我吗