如何使用sqlalchemy orm从多个数据库联接表

时间:2019-07-08 13:22:26

标签: python mysql sqlalchemy

我是python的新手。我对连接多个数据库以及用它编写联接查询有疑问。我的原始查询是:

 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 来自Finance db的表格是报告和详细信息, app db中的表是学生表和反式表, 内部的表是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中实现该原始查询。

0 个答案:

没有答案