SQLAlchemy连接表进行查询

时间:2018-08-09 21:12:56

标签: python sqlalchemy

我遇到一种情况,希望将表联接到查询中。

我的表从数据库中的现有对象反映出来。

class table1(Base):
    __tablename__ = "table1"
    __table_args__ = {'schema': 'schema1'}
    acct_id = Column(DECIMAL(precision=15), primary_key=True)

    @hybrid_property
    def hybrid_id(self):
        return func.coalesce(self.id1, self.id2, self.id3)

class table2(Base):
    __tablename__ = "table2"
    __table_args__ = {'schema': 'schema2'}
    id = Column(String(length=128), primary_key=True)

我的表disp和查询acct

disp = aliased(table2)
sq = sess.query(table2.id).filter(table2.id.isnot(None))
acct = sess.\
    query(table1.id,
        table1.attr2,
        table1.attr3,
        table1.attr4).\
    filter(table1.hybrid_id.in_(sq))

我试图加入他们的行列。

result= sess.\
    query(disp.id, disp.attr2, acct.hybrid_id, acct.attr3).\
    select_from(disp, [acct.hybrid_id == disp.id]).\
    limit(10).all()

错误:

AttributeError: 'Query' object has no attribute 'hybrid_id'

任何有关如何正确实现表以查询联接的建议将不胜感激。

0 个答案:

没有答案