查找具有两个或更多记录的用户

时间:2014-01-06 17:48:07

标签: mysql ruby-on-rails

运行一个简单的应用。我们的应用程序在DB中具有带有user_id行的bin表..记录Users模型中的Users ID,以便每个bin属于user_id属于该User的用户ID。

无论如何,我正在尝试使用Rails控制台在Bins上运行FIND并找到具有3个或更多Bins的所有用户。

到目前为止,我已经尝试了Bins和用户这两种方式;

user = User.all
Bin.find(:all, :conditions => ['user.id = bins_user_id']) 

然而,它并没有真正提出其他任何东西,那么“user.id”就不存在了。

1 个答案:

答案 0 :(得分:1)

您可以使用joins UsersBin进行User.joins(:bins).group("user.id").having("count(bins.user_id) > 2") ...之后会发生以下情况:

SELECT "users.*" from "users" INNER JOIN "bins" ON "bins"."user_id" = "users"."id" GROUP BY users.id HAVING count(bins.user_id) > 2

将产生以下SQL:

{{1}}

认为这会起作用,但它至少会让你闭嘴。我在Rails应用程序中尝试了这个,其中包含与您所描述的数据类似的数据,并返回了我期望的结果。