Перепутан с множественным объединением в одном запросе, Sqlalchemy

#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()