我在Rails的一個相當長的SQL查詢:ActiveRecord的SQL查詢輸出
Region.includes(:answers, answers: :choice)
.where('choices.id IS NULL OR choices.id = ?', 28)
.where('answers.id IS NULL OR answers.question_id = ?', 14)
.group("regions.region","choices.choice").count("answers")
這給了我所有地區的哈希值,與選擇的名稱,並回答計數,甚至當計數爲零。這裏是輸出:
{["East", nil]=>0, ["East Midlands", nil]=>0, ["London", nil]=>0, ["North East", nil]=>0, ["North West", nil]=>0, ["Northern Ireland", nil]=>0, ["Rest of World", "No"]=>3, ["Scotland", nil]=>0, ["South East", nil]=>0, ["South West", nil]=>0, ["Wales", nil]=>0, ["West Midlands", nil]=>0, ["Yorkshire and the Humber", nil]=>0}
目前唯一有答案的地區是'世界其他地區',顯示選擇名稱'否'。
所有其他項目都顯示'nil'作爲選擇名稱(choices.choice)。如何更改查詢以輸出選擇名稱「否」而不是零,即使沒有與其關聯的答案?
感謝
:
試試這個? – phoet
去哪個模特?我不確定這會起作用。該查詢正在計算答案。每個答案在創建時都會按region_id分配給定的區域。在創建時,我已經爲該問題提供了默認的「投票」值,但這不是按區域分割的。 –
啊好的,所以關係沒有設置。這不是說在數據庫中有'NULL'作爲'choice.choice'的值嗎? – phoet