计算sqlalchemy模型中的相关项
我试图计算各个类别中的项目数量,并最终得到一个集合,我可以在jinja模板中遍历该集合。我的最终输出类似于: 类别1、5 类别2,10 类别3,0 零项情况很重要。 我的模型是:计算sqlalchemy模型中的相关项,sqlalchemy,flask-sqlalchemy,Sqlalchemy,Flask Sqlalchemy,我试图计算各个类别中的项目数量,并最终得到一个集合,我可以在jinja模板中遍历该集合。我的最终输出类似于: 类别1、5 类别2,10 类别3,0 零项情况很重要。 我的模型是: class Category(Base): __tablename__ = 'category' id = Column(Integer, primary_key=True) name = Column(String(80), unique=True) user_id = Colum
class Category(Base):
__tablename__ = 'category'
id = Column(Integer, primary_key=True)
name = Column(String(80), unique=True)
user_id = Column(Integer, ForeignKey('user.id'))
user = relationship(User)
class Item(Base):
__tablename__ = 'item'
id = Column(Integer, primary_key=True)
name = Column(String(80))
description = Column(String(500))
category_id = Column(Integer, ForeignKey('category.id'))
category = relationship(Category)
user_id = Column(Integer, ForeignKey('user.id'))
user = relationship(User)
date_added = Column(DateTime, default=datetime.datetime.now)
有人亲切地指了指我的方向,这就引出了我的疑问
count_categories = db_session.query(Category.name, func.count(Item.id)).join(Item.category).group_by(Category.id).all()
这几乎是正确的,但它不处理零情况。当一个类别没有项目时,我仍然需要查询返回的类别
非常感谢您的帮助。事实上,我已经想到了:
count_categories = db_session.query(
Category.name, func.count(Item.id)).outerjoin(
Item).group_by(Category.id).all()
请参见可能的副本