我有两个表,Teams
和Votes
。我想查询按投票数排序的排名。
这个简单的原始查询正是我想要的,但我无法在sequelize
中代表它:
SELECT
id, name, count
FROM
"Teams" teams
LEFT JOIN
(select team_id, count(*) from "Votes" group by team_id) votes
ON
votes.team_id = teams.id
ORDER BY
count DESC
LIMIT 10
;
我可以通过以下方式获取数据:
Team.findAll({
attributes: [
'id',
'name'
],
include: [{
model: Vote
}],
limit: 10
});
这使我在每个结果中都引用了.Votes
(有一个Team.hasMany(Votes)
关联)。但我只想要count
按team_id
分组。
如何在此代码中加入GROUP BY
和COUNT
?