【发布时间】:2014-06-11 14:06:48
【问题描述】:
我可以获得拥有多个用户的帐户集合:
Account.group('accounts.id HAVING count(users.id) > 1').joins(:users)
但是,一旦我在那个对象上调用 .count,我就会得到一个巨大的爆炸:
(0.3ms) SELECT COUNT(*) AS count_all, accounts.id HAVING count(users.id) > 1 AS accounts_id_having_count_users_id_1 FROM "accounts" INNER JOIN "users" ON "users"."account_id" = "accounts" ."id" GROUP BY accounts.id HAVING count(users.id) > 1 ActiveRecord::StatementInvalid: PG::Error: ERROR: 在“AS”处或附近出现语法错误 第 1 行:...unt_all, accounts.id HAVING count(users.id) > 1 AS 帐户...
似乎在postgres中,我想要的实际查询是:
select count(*) from (SELECT accounts.id FROM "accounts" INNER JOIN "users" ON "users"."account_id" = "accounts"."id" GROUP BY accounts.id HAVING count(users.id) > 1) as a;
如何获取 activerecord 来生成这个(或类似的)查询?
【问题讨论】:
标签: ruby-on-rails activerecord