2013-02-09 85 views
0

我想做一個數據庫查詢,它只返回has_many關係不爲空的結果。下面是一個例子,其中has_many:gift_images:Activerecord請求has_many關係爲空

Gift.joins(:gift_images).includes(:gift_images, :comments, :category, :user).select("gifts.*, COUNT(gift_images.id) AS gcount").where("gcount > 0") 

這樣的事情,但它不起作用。有任何想法嗎?

回答

1

不能使用的,語句,嘗試以下

Gift.where("(SELECT COUNT(*) FROM gift_images WHERE gift_images.gift_id = gifts.id) > 0") 
1

我喜歡讓數據庫查詢少「SQL十歲上下」時,可能別名。

Gift.where(id: GiftImage.where('gift_id IS NOT NULL').select('gift_id')).count