首页 > 解决方案 > 如何在 SQLAlchemy 中查询热切连接的表?

问题描述

我有 3 张桌子

class DB1(Base):
   row1 = Column(Integer, primary_key=True)
   row2 = Column(String)
   row3 = relationship("db2", lazy='joined')

class DB2(Base):
   row1 = Column(Integer, primary_key=True)
   row2 = Column(String)
   row3 = relationship("db3", lazy='joined')

class DB3(Base):
    row1 = Column(Integer, primary_key=True)
    row2 = Column(String)

考虑到渴望加入,我的查询看起来像这样

SELECT db1.row1 AS db1_row1, db1.row2 AS db_row2, db1.row3 as db_row3
db2.row1 AS db2_row1, db2.row2 AS db_row2, db2.row3 AS db_row3,
db3.row1 AS db3_row1, db3.row2 AS db_row2

FROM db1 
LEFT OUTER JOIN db2 AS db2_1 ON db2_1.row1 = db1.row3 
LEFT OUTER JOIN db3 AS db3_1 ON db3_1.row1 = db2.row3

该查询位于 Query 对象中,我想在 db2 和 db3 上应用过滤条件,但在 Query 中,它们被命名为 db2_1 和 db3_1。我正在动态应用过滤条件,因此我无权访问名称“db2_1”和“db3_1”。我该如何继续?谢谢。

标签: pythonsqlpython-3.xsqlalchemyflask-sqlalchemy

解决方案


推荐阅读