Как объединить таблицы из нескольких баз данных, используя sqlalchemy orm - PullRequest
0 голосов
/ 08 июля 2019

Я новичок в питоне.У меня есть сомнения в подключении нескольких баз данных и в написании запроса соединения с ним.Мой необработанный запрос:

 SELECT FD.number, FD.options, DATE_FORMAT(TD.date,"%y-%m-%d") as date, 
T.id,S.name, S.id, CP.id, FL.id from finance.reports FD inner join

finance.details TD on FD.number=TD.number inner join app.trans T on T.id = FD.id inner join app.students S on S.id = T.student_id inner join internal.c_map CP on

 FD.options=CP.mode left join internal.trans_logger FL on FL.number = FD.number Where S.id = "181" order by FD.number desc limit 50

Здесь я использовал три базы данных, finance, app, internal И таблицы из базы данных финансов - это отчеты и подробности, таблицы из базы данных приложения - это студенты и транс, таблицы из внутренней - это trans_logger и c_map.

Этот необработанный запрос работает.Но мне нужно написать тот же запрос, используя orm.Как связать базы данных и добиться этого.

Я пытался так, но это не работает,

Session = sessionmaker()
Session.configure(binds={
    T1: create_engine("finance"),
    T2: create_engine("internal"),
    T3: create_engine("app")
}
session = Session()
q = (session.query(T1)
            .join(T2, T1.reports.number == T2.details.number)
            .join(T3, T1.students.id == T2.trans.student_id)
            .limit(50)
)

Я что-то пропустил.Пожалуйста, помогите мне выполнить этот необработанный запрос в orm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...