我正在尝试进行数据库查询,它只返回has_many关系不为空的结果。下面是has_many:gift_images:
的示例Gift.joins(:gift_images).includes(:gift_images, :comments, :category, :user).select("gifts.*, COUNT(gift_images.id) AS gcount").where("gcount > 0")
类似的东西,但它不起作用。有什么想法吗?
答案 0 :(得分:1)
您不能在where语句中使用别名,请尝试以下
Gift.where("(SELECT COUNT(*) FROM gift_images WHERE gift_images.gift_id = gifts.id) > 0")
答案 1 :(得分:1)
我希望尽可能减少数据库查询“SQL-ish”。
Gift.where(id: GiftImage.where('gift_id IS NOT NULL').select('gift_id') ).count