我希望使用knex.js
bookshelf.knex('user').distinct('social_name')
.select('social_image_url')
.count('status as score').innerJoin('game', function(){
this.on('game.user_id', 'user.id');
}).innerJoin('round', function(){
this.on('round.game_id', 'game.id');
}).where('status', 'win')
.groupBy('game.id', 'user.id')
.orderBy('score', 'desc')
.limit(10)
.then(function(top10){
callback(null, top10);
}).catch(function(err){
callback(err);
});
但这就是我得到的
[ { social_name: 'B', social_image_url: '.....', score: 4 },
{ social_name: 'A', social_image_url: '.....', score: 3 },
{ social_name: 'A', social_image_url: '.....', score: 2 } ]
我得到了social_name: A
的两个记录,而不是只获取它的最大值
{ social_name: 'A', social_image_url: '.....', score: 3 }
答案 0 :(得分:0)
我最后通过首先创建子查询来解决这个问题,然后再使用它进行内连接。