- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个这样定义的模型:
class Article(db.Model):
id = db.Column(db.Integer, primary_key=True)
authors = db.relationship('Author', secondary=articles_authors, backref=db.backref('articles', lazy='dynamic'))
tags = db.relationship('Tag', secondary=articles_tags, backref=db.backref('articles', lazy='dynamic'))
comments = db.relationship('Comment', backref=db.backref('article'), lazy='dynamic')
creation_time = db.Column(db.DateTime, default=datetime.datetime.utcnow)
modification_time = db.Column(db.DateTime, default=datetime.datetime.utcnow)
title = db.Column(db.String(256), nullable=False)
contents = db.Column(db.Text, nullable=False)
我想创建一个查询,为我提供所有带有作者和标签的文章,并计算与给定文章相关的评论。这就是我到目前为止的想法:
Article.query.options(db.joinedload(Article.authors), db.joinedload(Article.tags)).all()
给我带来麻烦的是计数部分——我找不到任何关于如何做的例子。那我该怎么做呢?
编辑:
查询不起作用,但感觉方向正确:
subquery = db.session.query(Comment.article_id, func.count(Comment.id).label('comments_count'))\
.group_by(Comment.article_id).subquery()
return db.session.query(Article, subquery.c.comments_count)\
.outerjoin(subquery, Article.id == subquery.c.article_id)\
.join(Tag).all()
本例中的计数部分工作正常,但我没有使用此查询获取标签和作者。
编辑2:
如果不明显——文章和标签之间的关系是多对多的:
articles_tags = db.Table('articles_tags',
db.Column('tag_id', db.Integer, db.ForeignKey('tag.id')),
db.Column('article_id', db.Integer, db.ForeignKey('article.id'))
)
文章和作者也是如此。
编辑:
答案:
subquery = db.session.query(Comment.article_id, func.count(Comment.id).label('comments_count'))\
.group_by(Comment.article_id).subquery()
return db.session.query(Article, subquery.c.comments_count)\
.outerjoin(subquery, Article.id == subquery.c.article_id)\
.options(db.joinedload(Article.authors), db.joinedload(Article.tags)).all()
最佳答案
我想你要找的可能是这样的(?)
(
session.query(Article, func.count(Comment.id))
.select_from(Comment)
.join(Comment.article)
.group_by(Article)
)
要获取作者和标签,您应该能够在 Article
对象上使用 .authors
或 .tags
。要急切地加载它,您可以使用 joinedload 或 subqueryload。
编辑:
(
session.query(Article, func.count(Comment.id))
.select_from(Comment)
.join(Comment.article)
.options(db.joinedload(Article.authors), db.joinedload(Article.tags))
.group_by(Article)
)
关于python - 加入并计算 sql-alchemy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29491114/
我已经开始使用炼金术 API,但我想知道是否是否有任何科学出版物解释用于从文本中提取关键字和概念的模型? 也是根据这个回答Is there way to influence AlchemyAPI se
我正在 SQLAlchemy 中寻找一种方法来进行批量处理 INSERT其行是查询的结果。我知道 session 具有功能 add它可用于添加单个对象,但我似乎无法找到它如何与子查询一起使用。 我知道
在使用 Alchamy 的实体 API 时收到“截断过大文本内容”的警告 - 有谁知道字符限制 - 我在他们的支持页面上找不到。 最佳答案 文本限制为50kb,在this page的底部有点隐藏. 关
我在 SQLAlchemy 中使用外键引用进行继承时遇到了困难。 我有一个drives表格看起来像这样 id作为主键: Column | Type |
我正在使用 alchemy 来编译 C 代码。 这就是我编译的方式 gcc oggvorbis.c -O3 -Wall -swc oggvorbis.swc -lvorbis 我收到错误 llvm-g
我尝试将 Alchemy NLP API 实现到我的 Android 项目中,但是我遇到了一些困难。从http://www.alchemyapi.com/developers/sdks/下载SDK时你
我似乎一辈子都无法安装 whoosh alchemy。引用:http://pythonhosted.org/Flask-WhooshAlchemy/ .不管怎样,我在关注http://blog.mig
我将 SQL Alchemy 的声明式风格与 PostgreSQL 数据库结合使用。我有一个管理 Claim 对象的 ClaimAccount 。像这样的东西: class Claim(MyBase)
我有用户模型,描述如下:- class User(db.Model, object): __tablename__ = "users" id = db.Column(db.Intege
我有一个这样定义的模型: class Article(db.Model): id = db.Column(db.Integer, primary_key=True) authors =
我是 python 和 SQLALCHEMY 的新手,我遇到了这个疑问,我们是否可以根据同一表列的单元格值过滤表的行。示例: Sbranch=value result=Transaction.quer
假设我得到一个这样的模型实例: instance = session.query(MyModel).filter_by(id=1).first() 如何删除该行?有没有特殊的调用方法? 最佳答案 好的
我打算制作一个 AIR 应用程序,但我需要执行一个外部应用程序,并且由于 Adobe AIR 中的安全限制......我在想为什么不尝试通过编写一些 C 代码来绕过它来执行类似 System 的操
我们当前的项目在很大程度上依赖于 SQL Alchemy 来创建表/插入数据。我们想切换到 timescaledb 的超表,但似乎推荐的创建超表的方法是执行 create_hypertable 命令。
我创建了以下方法来使用 SQL Alchemy 和 Pyodbc 连接到 SQL Server。 def getDBEngine(server, database): Params = url
我是 sql alchemy 的新手,我想计算表中的唯一行数,并输出唯一行以及该行的副本数。假设我有一个这样的表 Table A -------------- id address 现在我想获取该表的
我是 stackoverflow 新手。 我目前正在开发一个 WebSocket 项目,并使用一个名为 Alchemy-Websockets 的组件。 我的问题是当我尝试像这样使用 Alchemy.W
我是 sql alchemy 的新手,我想计算表中的唯一行数,并输出唯一行以及该行的副本数。假设我有一个这样的表 Table A -------------- id address 现在我想获取该表的
我们想在 sql alchemy 类上申请权限。我们有一个表,其中包含用户可以访问的映射。 创建表访问 ( 用户名 varchar(256), 策略 ID 整数 ) 我们的大多数表都包含 strate
我有以下场景 partner = query().filter(Partners.id == partner_id).first() if partner != None: partner.c
我是一名优秀的程序员,十分优秀!