如何在Rails中编写多个COUNT(*)子查询?

时间:2012-05-17 17:05:40

标签: ruby-on-rails count subquery

如何像这样在Rails中编写子查询?:

select
    m.field1,
    m.field2,
    (select count(*) from details1 d1 where d1.id=m.field3) as count1,
    (select count(*) from details2 d2 where d2.id=m.field4) as count2,
    (select count(*) from details3 d3 where d3.id=m.field5) as count3
from
    master m

数据库服务器是PostgreSQL。

1 个答案:

答案 0 :(得分:3)

class Master < ActiveRecord::Base
  set_table_name "master"
end
masters = Master.select(%Q"master.field1, master.field2,
(select count(*) from details1 d1 where d1.id=m.field3) as count1,
(select count(*) from details2 d2 where d2.id=m.field4) as count2,
(select count(*) from details3 d3 where d3.id=m.field5) as count3").all