#mysql #database #sqlalchemy
#mysql #База данных #sqlalchemy
Вопрос:
Я пытаюсь объединить три таблицы в одном запросе в SQLAlchemy специально, но не могу этого сделать. Я делал это до сих пор :-
Test.query.join(Test.sections).join(QuestionSection.section).all()
Я знаю, что это неправильно, но я пытаюсь сделать это в одном запросе.
Вот мои таблицы :-
Модель раздела вопросов :-
class QuestionSection(Dictifiable, db.Model):
__tablename__ = 'question_section'
section_id = Column(Integer, ForeignKey('section.id'), primary_key=True)
question_id = Column(Integer, ForeignKey('question.id'), primary_key=True)
question = db.relationship('Question', backref='question_section')
section = db.relationship('Section', backref='question_section')
Таблица разделов :-
class Section(Dictifiable, db.Model):
__tablename__ = 'section'
id = Column(Integer, Sequence('section_id_seq'), primary_key=True)
test_id = Column(Integer, ForeignKey('test.id'))
name = Column(String(50))
test = relationship("Test", back_populates="sections")
questions = db.relationship('Question',
secondary='question_section')
И тестовая таблица :-
id = Column(Integer, Sequence('test_id_seq'), primary_key=True)
name = Column(String(50))
sections = relationship("Section", back_populates="test")
tests = relationship("Corporate", secondary='corporate_test',
back_populates='tests')
Ответ №1:
Я понял, что я делал неправильно, я должен присоединиться следующим образом :-
Test.query.join(Test.sections).join(QuestionSection, QuestionSection.section_id == Section.id).all()