python – SQLAlchemy查询,按关系加入关系和顺序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – SQLAlchemy查询,按关系加入关系和顺序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1016字,纯文字阅读大概需要2分钟。
内容图文
![python – SQLAlchemy查询,按关系加入关系和顺序](/upload/InfoBanner/zyjiaocheng/889/540fa06deb25424d9f924ce3e742affb.jpg)
我有两个SQLAlchemy模型设置如下:
##############
# Post Model #
##############
class Post(db.Model):
id = db.Column(db.Integer, primary_key = True)
title = db.Column(db.String(250))
content = db.Column(db.String(5000))
timestamp = db.Column(db.Integer)
author_id = db.Column(db.Integer, db.ForeignKey('user.id'))
likes = db.relationship('Like', backref = 'post', lazy = 'dynamic')
###############
# Likes Model #
###############
class Like(db.Model):
id = db.Column(db.Integer, primary_key = True)
voter_id = db.Column(db.Integer, db.ForeignKey('user.id'))
post_id = db.Column(db.Integer, db.ForeignKey('post.id'))
正如您所看到的,这些帖子上有帖子模型和用户喜欢的模型.我想创建一个选择所有帖子的查询,按照帖子的喜欢数量排序.在shell中,我可以运行:
SELECT post.*,
count(like.id) AS num_likes
FROM post
LEFT JOIN like
ON post.id = like.post_id
GROUP BY post.id;
什么是等效的SQLAlchemy命令?
谢谢!
解决方法:
从原始查询到Flask-SQLAlchemy的转换非常具有机械性:
db.session.query(Post, db.func.count(Like.id)).outerjoin(Like).group_by(Post.id)
内容总结
以上是互联网集市为您收集整理的python – SQLAlchemy查询,按关系加入关系和顺序全部内容,希望文章能够帮你解决python – SQLAlchemy查询,按关系加入关系和顺序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。