У меня есть SQL -запрос, который я хотел бы превратить в sqlalchemy код. Я работаю здесь с уже существующей базой данных в производстве, что затрудняет ее изменение.
SELECT B.IDTestung, B.Ber1_Konzentration,
T.Testungstyp, T.Timestamp,
K.Name_Kl, K.Vorname_Kl
FROM BCRS AS B
INNER JOIN
ttestungen AS T on B.IDTestung = T.IDTESTUNG
INNER JOIN
tklienten K on T.IDKLIENT = K.IDKLIENT
Итак, в основном есть таблица BCRS, которая содержит идентификатор для «Testung» и сама таблица ttestungen имеет идентификатор для идентификации клиента. Итак, есть два внутренних объединения для объединения трех таблиц.
Как мне написать это в sqlalchemy? Что я получил так далеко:
from auswertungen.data.data import Tklienten, BCR, Ttestungen
tests = session.query(BCR).join(Ttestungen.tklienten).all()
Это делает первое соединение, но я не знаю, как сделать второе. Я пытался просто добавить еще один .join (...) после первого, но это не сработало.
Вот определение DB (определения): (автоматически создается с помощью sqlacodegen)
class BCR(Base):
__tablename__ = 'BCRS'
IDBCRS_Testung = Column(INTEGER(11), primary_key=True)
IDTestung = Column(ForeignKey('ttestungen.IDTESTUNG', ondelete='CASCADE'), unique=True)
[...]
ttestungen = relationship('Ttestungen')
class Ttestungen(Base):
__tablename__ = 'ttestungen'
IDTESTUNG = Column(INTEGER(10), primary_key=True)
IDKLIENT = Column(ForeignKey('tklienten.IDKLIENT'), index=True)
[...]
tklienten = relationship('Tklienten')