SQLAlchemy的排序依赖于多对多关系
||
这是我当前模型的简化示例(我正在使用Flask SQLAlchemy扩展名):
like = db.Table(
\'like\',
db.Column(\'uid\', db.Integer, db.ForeignKey(\'users.id\')),
db.Column(\'pid\', db.Integer, db.ForeignKey(\'posts.id\'))
)
class User(db.Model):
__tablename__ = \'users\'
id = db.Column(db.Integer, primary_key = True)
username = db.Column(db.String(20))
class Post(db.Model):
__tablename__ = \'posts\'
id = db.Column(db.Integer, primary_key = True)
title = db.Column(db.String(255))
likes = db.relationship(
\'User\',
secondary = like,
backref = db.backref(\'likes\', lazy = \'dynamic\'),
lazy = \'dynamic\'
)
我正在尝试按喜欢的数量订购Post
。
这基本上是我要尝试发出的查询:
SELECT p.*, COUNT(l.`pid`) as `likes`
FROM `posts` as p
LEFT JOIN `like` as l
ON p.`id` = l.`pid`
GROUP BY p.`id`
ORDER BY `likes` DESC
我只是无法在SQLAlchemy方面进行任何工作。
感谢您提供任何帮助。
没有找到相关结果
已邀请:
1 个回复
玖料萄
您想加入
表,使用
计数点赞,s6ѭ
,然后使用
:
我发现ORM教程和SQLAlchemy文档的其余部分非常有用。