gpt4 book ai didi

sqlalchemy - 计算 sqlalchemy 模型中的相关项目

转载 作者:行者123 更新时间:2023-12-04 03:19:55 25 4
gpt4 key购买 nike

我正在尝试计算各自类别中的项目数量,并最终得到一个我可以在 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 = 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)

我已被指向 Stackoverflow: Counting relationships in SQLAlchemy 的方向,这让我想到了这个问题

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()

参见 SQLAlchemy documentation on Joins

关于sqlalchemy - 计算 sqlalchemy 模型中的相关项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39040019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com