我有這樣的代碼如何在原始查詢中使用動態數組的id(rails + postgres)?
Language.all.map{|l|[l.language, l.accounts.joins(:children).where("accounts.id IN (?)", @accounts.ids).uniq.count]}
我試圖讓這個作爲輸出
[["eng", 5] ["span", 3] ["ital", 4] ... ]
我想把它寫成一個原始查詢。
我想這一點,
ActiveRecord::Base.connection.execute("select languages.language, (SELECT COUNT(*) FROM accounts where accounts.language_id = languages.id) from languages").values
,但我需要通過accounts.ids動態..這樣
select languages.language, (SELECT COUNT(*) FROM accounts where accounts.language_id = languages.id AND (accounts.id IN (#{@accounts.ids})) from languages"
當我試圖通過accounts.id IN #{@accounts.ids}
我收到錯誤 (accounts.id IN ([2839, 284..
..這反而應該是IN (2839, 284..)
,它正在取數組。
如何動態傳遞它?
都能跟得上。得到PG ::語法錯誤。它需要整個事情作爲字符串 –
哦,對不起,我認爲你使用Mysql。 – hoangdd
您在查詢中忘記了「)」嗎? – hoangdd