gpt4 book ai didi

sql - Rails SQL 计数

转载 作者:行者123 更新时间:2023-12-02 10:28:24 26 4
gpt4 key购买 nike

我有一个 Posts 表和一个 Sec_photo 表:

class Post < ActiveRecord::Base
has_many :sec_photos

我正在尝试执行一个高级搜索表单,它根据 sec_photos 的总和查找 post :@posts = @posts.where(:sec_photos.count > 2) 失败了,我在网上查看并尝试了许多其他解决方案,但似乎都不起作用。

有人有什么想法吗?

Ps: 该行必须采用 @posts = @posts.where 的形式,因为这与其他条件一致。

搜索其他字段(例如category_id和location_id)的高级搜索

@posts = Post.all
@posts = @posts.where('category_id = ?', @advanced_search.category_search) if @advanced_search.category_search.present?
@posts = @posts.where('location_id = ?', @advanced_search.location_search) if @advanced_search.location_search.present?
@posts = @posts.where("strftime('%m %Y', created_at) = ?", @advanced_search.newdate_search.strftime('%m %Y')) if @advanced_search.newdate_search.present?

最后一个选项是显示 sec_photos 大于 2 或小于 2 的帖子

最佳答案

您可以执行以下操作:

@posts = Post.whatever_scopes_you_use
@posts = @posts.joins(:sec_photos).group('posts.id').having('COUNT(sec_photos.id)
> 2')

最后一行将选择所有关联严格超过 2 sec_photos帖子。当然,您可以轻松地从中创建一个 scope,接受 count 变量以使其动态;-)


来 self 之前的回答:How to return results filtered on relations count to a view in RAILS?

关于sql - Rails SQL 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24656479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com