[英]Rails One-to-many association Query
楷模:
class User < ActiveRecord::Base
has_may :friends
end
class Friend < ActiveRecord::Base
belongs_to :user
end
表格:
要查詢:
都具有的users
:
friends.name = "Lily"
# and
friends.name = "Steven"
我想要按Model Where Query這樣:
User.joins(xxx).where(xxx)
有什么辦法嗎?
我認為
User.joins(:friends).where("friends.name = 'Lily' OR friends.name = 'Steven'")
會做你想要的
SELECT users.id, users.name
FROM users
INNER JOIN friends ON users.id = friends.user_id
WHERE friends.name IN ('Lily', 'Steven')
GROUP BY users.id
HAVING COUNT(*) = 2;
ActiveRecord查詢
names = ['Lily', 'Steven']
User.select('users.id, users.name').joins(:friends).where(friends: { name: names }).group('users.id').having("COUNT(*) = #{names.count}")
上面的查詢將僅向您返回與"Lily"
和"Steven"
成為好友的用戶
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.