from sqlalchemy import Column, DateTime, String, Integer, ForeignKey, func, Table, create_engine from sqlalchemy.orm import relationship, backref, sessionmaker, joinedload, contains_eager from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base() engine = create_engine('sqlite://', echo=True) class Game(Base): __tablename__ = 'game' id = Column(Integer, primary_key=True) stadium_name = Column(String) month_id = Column(Integer, ForeignKey('month.id')) year_stadium = relationship("YearStadium", secondary="month", primaryjoin="Month.id == Game.month_id", secondaryjoin="and_(Month.year_name == YearStadium.year_name, " "YearStadium.stadium_name == Game.stadium_name)") class Month(Base): __tablename__ = 'month' id = Column(Integer, primary_key=True) year_name = Column(String) class YearStadium(Base): __tablename__ = 'year_stadium' id = Column(Integer, primary_key=True) stadium_name = Column(String) year_name = Column(String) Base.metadata.drop_all(engine) Base.metadata.create_all(engine) Session = sessionmaker(engine) session = Session() session.query(Game).join(Game.year_stadium).all() # works session.query(Game).options(joinedload(Game.year_stadium)) # fails In the example above, I'm trying to have a relationship to a table. It's not a classic association table example, since the third table needs one column from table 2 and one column from table 1 to be joined. The relationship I wrote works well for simple joins or when lazy-loading, but fails with a joinedload. Is there a way to make it work ? -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.