에 속하지 않는 레코드를 반환하고 난 2 개 클래스가 : 관계플라스크-SQLAlchemy의은 - 내가 플라스크 SQLAlchemy의 함께 일하고 특정 관계
class Players(db.model):
__tablename__ = 'players'
id = db.Column(db.Integer, , nullable=False, autoincrement=True, primary_key=True)
name = db.Column(db.String(45), nullable=False)
teams = db.Column(db.Integer, ForeignKey("teams.id"), nullable=False)
db.relationship('Teams',
secondary=player_has_teams,
back_populates='teams')
class Teams(db.model):
__tablename__ = 'team'
id = db.Column(db.Integer, , nullable=False, autoincrement=True, primary_key=True)
name = db.Column(db.String(45), nullable=False)
db.relationship('Players',secondary=player_has_teams,back_populates='players')
과 한 테이블 :
player_has_teams = db.Table('player_has_teams ', db.metadata,
db.Column('player_id', db.Integer, ForeignKey('player.id')),
db.Column('team_id', db.Integer, ForeignKey('team.id'))
)
을
관계는 많은 많은입니다 (모든 플레이어가 많은 팀을 가질 수 있고 모든 팀은 많은 선수가) 내가 쿼리 할 수 있습니다 팀의 선수를 취할
:
,536를team = db.session.query(Teams).options(joinedload('players',innerjoin=True).filter(Teams.id == 1).first()
그래서 team.players를 입력하면이 팀의 모든 선수가 나에게 돌아갑니다. 내 문제는 :
한 팀에 플레이어를 추가하고 싶습니다.이 팀에는 일부 플레이어가있을 수 있습니다.이 팀에 속한 플레이어가 아닌 모든 플레이어를 반환하는 쿼리를 원합니다. 어떤 제안이 있습니까?
이 방법에 대한 https://stackoverflow.com/questions/21633115/return-row-only-if-value-doesnt-exist?lq=1를 참조하십시오 일반적인 SQL로 해보십시오. SQLAlchemy 구문으로 변환하는 것이 어렵지 않아야합니다. – Barmar
해결책을 시도 했습니까? – roy