Orm sqlalchemy-从一个表到另一个表的多个连接

Orm sqlalchemy-从一个表到另一个表的多个连接,orm,mapping,sqlalchemy,Orm,Mapping,Sqlalchemy,我有两张桌子。第一个是比赛表,它代表一场两队的足球比赛。第二个是代表团队的团队表。团队表中大约有18个团队。比赛表中大约有34场比赛 与其创建多对多联接,我想做的是为以下对象创建一个简单联接: Match.matchID----------------->1 Match.team1----------------->Team.teamID Match.team2----------------->Team.teamID Match.team1只能有一个teamID,Match.team2只能有一

我有两张桌子。第一个是比赛表,它代表一场两队的足球比赛。第二个是代表团队的团队表。团队表中大约有18个团队。比赛表中大约有34场比赛

与其创建多对多联接,我想做的是为以下对象创建一个简单联接:

Match.matchID----------------->1

Match.team1----------------->Team.teamID

Match.team2----------------->Team.teamID

Match.team1只能有一个teamID,Match.team2只能有一个teamID。在古典炼金术中我该怎么做?我目前有以下匹配表:

match_table = Table('match',metadata,
  Column('matchID', Integer, primary_key=True),
  Column('matchTeam1',Integer,ForeignKey('team.teamID')),
  Column('matchTeam2',Integer,ForeignKey('team.teamID')),
对于团队表,请执行以下操作:

team_table = Table('team',metadata,
  Column('teamID',Integer,primary_key=True),
  Column('teamShortName',String),
我如何在这里创建映射?像下面这样的东西似乎不起作用-有不同的语法可以使用吗

mapper(Match,match_table,properties={
  'team1':relationship(Team),
  'team2':relationship(Team),
})

谢谢当我将team_table.teamID更改为team_table.c.teamID时,它起作用了
    mapper(Match,match_table,properties={
      'team1':relationship(Team, foreign_keys=[match_table.c.matchTeam1], 
          primaryjoin=match_table.c.matchTeam1==team_table.teamID),
      'team2':relationship(Team, foreign_keys=[match_table.c.matchTeam2], 
          primaryjoin=match_table.c.matchTeam2==team_table.teamID),
    })