首页 > 解决方案 > Sequelize:如何通过关联表列的总和来查询父列

问题描述

请我需要帮助。

我有 2 张桌子ArticlesRatings. 我将文章和评级相关联,因此文章可以有很多评级。评级有rating一个整数列。现在我想用 sequelize 查询数据库,以返回数据库中评分最高的 5 篇文章。所以基本上查询应该能够rating为所有文章添加所有评级的所有列,然后返回评级最高的前 5 篇文章。请问我该怎么做?

标签: node.jspostgresqlsequelize.js

解决方案


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);
                });

我希望这会奏效!如果不玩这个代码,你会得到你的答案!:-)。

并让我知道它是否有效!


推荐阅读