我有两个表users
和votations
,在投票中有两个字段win_id
和user_id
。
我需要在win_id
(投票)和id
(用户)的活动记录中创建查询。
我的SQL查询如下:
Select users.name, Count(votations.win_id) from votations Inner Join users ON vontations.win_id = users.id Group By users.name;
答案 0 :(得分:2)
假设您在Violation
中有这样的关联:
belongs_to :user, foreign_key: "win_id"
然后这应该这样做:
Violation.joins(:user).group("users.name").count
它将为您提供一个哈希,其中用户名为键,计数为值。
如果您没有该关联且不想要它,请将joins()
更改为:
joins("JOIN users ON violations.win_id = users.id")
答案 1 :(得分:0)
最明确的方法可能是使用find_by_sql
(docs here):
User.find_by_sql("Select users.name, Count(votations.win_id) from votations Inner Join users ON vontations.win_id = users.id Group By users.name")