Sequelize:如何通过关联表的列的总和查询父列

时间:2019-03-21 16:50:30

标签: node.js postgresql sequelize.js

请帮助我。

我有2个表ArticlesRatings。我将文章和评分相关联,因此文章可以具有许多评分。 评分有一个列rating,该列是整数。 现在,我想用sequelize查询数据库,以从数据库中返回评分最高的5个文章。 因此,基本上,查询应该能够为所有文章添加所有评分的所有rating列,然后返回评分最高的前5条文章。 我该如何处理?

1 个答案:

答案 0 :(得分:0)

const Sequelize = require('sequelize');    
const Op = Sequelize.Op;

     Article.findAll({
                    include: [{
                        model: Rating
                    }],
                    where : {
                        id : {
                            [Op.in] : [connection.literal(`select ArticleID from Rating  WHERE rating =(SELECT MAX(rating) FROM Rating) LIMIT 5'`)]
                        }
                    }
                })
                .then(result => {
                    res.json(result);
                }).catch(error=>{
                    res.json(error);
                });

我希望这会成功!如果不使用此代码,您将得到答案! :-)。

请让我知道它是否有效!