Sequelize加入group by

时间:2014-12-24 23:18:55

标签: node.js orm sequelize.js

我想做的事情最好通过一个小例子来说明。

说我有以下表格:

表项目

  • ID
  • 名称

表格审核

  • ID
  • 等级
  • 的itemId

显然,对一个项目有很多评论。

如何编写返回以下两列的查询:

  • 项目的名称(Item.name
  • 所有商品的评分(Sequelize.fn('sum', sequelize.col('rating'))
  • 的总和

我想使用ORM。

1 个答案:

答案 0 :(得分:0)

尝试使用它:

Review.belongsTo(Item, {foreignKey:'itemId', as : 'reviews'});
Item.hasMany(Review, {foreignkey:'id'});

Item.findAll({attributes:[['id', 'id'],['name', 'name'],[Sequelize.fn('SUM', 'rating'), 'total']], include:[{model:Review, as : 'reviews', required:true}], group:['id'], order:[Sequelize.fn('SUM', 'rating'), 'DESC']}).success(function(result){
    // return array;
    // total     -----> result[i].total
    // item name -----> result[i].name
})