我正在尝试编写一个查询来获取多个项目的 N 个最新评论。
目前,我正在遍历这些项目,每个项目都有一个查询:
for i in itemIds:
Comment.query.filter_by(itemId=i).order_by(Comment.id.desc()).limit(3)
但这真的很慢。
我想要一个获取所有评论的查询,但不知道如何。我试过使用union
,但还没有让它工作。我似乎存在 MySQL order_by
、 和union
. 我正在尝试以下效果:
a = Comment.query.filter_by(itemId=1).order_by(Comment.id.desc()).limit(3)
b = Comment.query.filter_by(itemId=2).order_by(Comment.id.desc()).limit(3)
u = union_all(a,b)
DB.session.query(Comment).select_from(u).all()
但这不起作用。它抱怨“不正确地使用 UNION 和 ORDER BY”。
我不是 MySQL 或 SQLAlchemy 忍者,我已经为此苦苦思索了好几个小时。
请帮忙!任何指针或建议将不胜感激。