У меня есть две сущности, Player
и Game
, и отношения между ними много-много. И Player
, и соединение между Player
и Game
(PlayerGame
) имеют оценку
class Player(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
score = db.Column(db.Float)
name = db.Column(db.String(45), nullable=False)
class Game(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(45))
class PlayerGame(db.Model):
player_id = db.Column(db.Integer, db.ForeignKey('players.id'), primary_key=True)
game_id = db.Column(db.Integer, db.ForeignKey('games.id'), primary_key=True)
score = db.Column(db.Float)
player = db.relationship("Player", backref="games")
game = db.relationship("Game", backref="players")
Я хочу написать запрос с использованием sqlalchemy, который с заданным идентификатором игры возвращает всех связанных игроков, но их оценка будет перезаписана счетом игры
Пока мой запрос выглядит так
Player.query.join(PlayerGame, and_(
PlayerGame.player_id == Player.id,
PlayerGame.game_id == game_id))\
.options(contains_eager(Player.games))
Я думал об изменении Player.score
и PlayerGame.score
названий меток, илиисключая Player.score
, но ничего из вышеперечисленного действительно не работает
Это возможно сделать после запроса в коде Python, но в идеале я хочу, чтобы он был частью запроса