运行一个简单的应用。我们的应用程序在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”就不存在了。
答案 0 :(得分:1)
您可以使用joins
Users
对Bin
进行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应用程序中尝试了这个,其中包含与您所描述的数据类似的数据,并返回了我期望的结果。