我遇到一种情况,希望将表联接到查询中。
我的表从数据库中的现有对象反映出来。
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'
任何有关如何正确实现表以查询联接的建议将不胜感激。