gpt4 book ai didi

sql - 查找关联计数大于零的所有记录

转载 作者:行者123 更新时间:2023-12-03 04:59:08 26 4
gpt4 key购买 nike

我正在尝试做一些我认为很简单但事实并非如此的事情。

我的项目模型有很多空缺。

class Project < ActiveRecord::Base

has_many :vacancies, :dependent => :destroy

end

我想要获取所有至少有 1 个空缺的项目。我尝试过这样的事情:

Project.joins(:vacancies).where('count(vacancies) > 0')

但它说

SQLite3::SQLException: 没有这样的列:空缺: SELECT "projects".* FROM "projects"INNER JOIN "vacancies"ON "vacancies"."project_id"= "projects"."id"WHERE ( “项目”。“deleted_at”为空)AND(计数(空缺)> 0)

最佳答案

1) 要获得至少有 1 个空缺的项目:

Project.joins(:vacancies).group('projects.id')

2) 要获取具有 1 个以上空缺的项目:

Project.joins(:vacancies).group('projects.id').having('count(project_id) > 1')

3) 或者,如果 Vacancy 模型设置计数器缓存:

belongs_to :project, counter_cache: true

那么这也可以工作:

Project.where('vacancies_count > ?', 1)

vacancy 的变形规则可能需要为 specified manually

关于sql - 查找关联计数大于零的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20183710/

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