一旦调用
subquery(),就无法访问 对象 ,而只能通过访问器访问列
.c.{column_name}。sub_query而是执行以下操作:仅加载所需的列,以避免任何名称冲突:
sub_query = db.session.query( Bill.id, Bill.personId, BillToEvent.eventId ).join(BillToEvent, BillToEvent.billId == Bill.id).subquery()
然后在查询中使用列名称
.c.column_name:
query = query.outerjoin( sub_query, and_( sub_query.c.personId == CalendarEventAttendee.personId, sub_query.c.eventId == CalendarEventAttendee.eventId) )results = query.all()



