我正在使用sqlalchemy和烧瓶。目前我有2个模型参与此查询:
class Actor(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(255))
type_id = db.Column(db.Integer, db.ForeignKey('actor_type.id'))
geo_origin = db.Column(db.String(45))
type = db.relationship("ActorType")
class ActorType(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
title = db.Column(db.String(45), unique=True)
所以,我做了这个查询,它完美地运作:
actors_by_type = (db.session.query(models.Actor.type_id, func.count(models.Actor.id).label("count")).group_by(models.Actor.type_id)).all()
在结果中获取ActorType.titles而不是ActorType.ids的最佳方法是什么?
答案 0 :(得分:0)
试试这个,我对模型的名称不感兴趣,但它在我的项目中表现得很好
query = db.session.query(models.ActorType.type_id, func.count(models.Actor.id)) \
.join(models.Actor) \
.group_by(models.ActorType.type_id)\
.all()