在沒有櫃檯緩存的一對多關係中,我怎麼能找到沒有孩子的父母?Rails 3找到沒有孩子的父母
user.rb
has_many :pages
page.rb
belongs_to :user
我已經試過
User.includes(:pages).where("pages.user_id is NULL")
這是在MySQL製造麻煩。
在沒有櫃檯緩存的一對多關係中,我怎麼能找到沒有孩子的父母?Rails 3找到沒有孩子的父母
user.rb
has_many :pages
page.rb
belongs_to :user
我已經試過
User.includes(:pages).where("pages.user_id is NULL")
這是在MySQL製造麻煩。
嘗試
User.joins("left join pages on pages.user_id = users.id").where("pages.user_id is null")
一種方法是
User.where("(SELECT COUNT(*) FROM pages WHERE pages.user_id = users.id) = 0")
但我不知道如何(在)有效,這將是。
count(*)不是我個人想要運行的東西,如果它是一個常見的查詢。 –
我相信像
User.all(:joins => :comments, :select => "users.*, count(comments.id) as comments_count", :group => "users.id")
也可能工作...
感謝它幫了我很多。 – rubyrubyruby
+1因爲Arel很漂亮 – jaydel
謝謝,它也幫了我很多! – sidney