我有这样的代码如何在原始查询中使用动态数组的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