在我的Ruby on Rails應用程序,我有以下型號:ActiveRecord的 - 查找記錄,它的關聯計數爲0
class SlideGroup < ApplicationRecord
has_many :survey_group_lists, foreign_key: 'group_id'
has_many :surveys, through: :survey_group_lists
end
我想找到所有孤立的幻燈片組。孤立幻燈片組是與任何調查無關的幻燈片組。我一直試圖下面的查詢,但它不返回任何東西,我敢肯定,我在我的測試數據庫中的孤立記錄:
SlideGroup.joins(:surveys).group("slide_groups.id, surveys.id").having("count(surveys.id) = ?",0)
這會產生下面的SQL查詢:
SlideGroup Load (9.3ms) SELECT "slide_groups".* FROM "slide_groups" INNER JOIN "survey_group_lists" ON "survey_group_lists"."group_id" = "slide_groups"."id" INNER JOIN "surveys" ON "surveys"."id" = "survey_group_lists"."survey_id" GROUP BY slide_groups.id, surveys.id HAVING (count(surveys.id) = 0)
這裏你需要一個'outer join',因爲'inner join'不會返回孤兒。 – mudasobwa