【发布时间】:2012-08-07 02:41:52
【问题描述】:
我真的很想在活动记录的帮助下进行以下查询
(select *
from people p join cities c join services s
where p.city_id = c.id and p.id = s.person_id and s.type = 1)
intersect
(select *
from people p join cities c join services s
where p.city_id = c.id and p.id = s.person_id and s.type = 2)
问题是,首先,mysql不支持intersect。但是,这可以解决。问题是我可以获得活动记录来输出任何接近的东西。
在活动记录中,我能做的最好的事情是发出多个查询,然后使用reduce :& 加入它们,但随后我得到一个数组,而不是关系。这对我来说是个问题,因为我想调用诸如限制之类的东西。另外,我认为交集最好由数据库完成,而不是 ruby 代码。
【问题讨论】:
标签: mysql ruby-on-rails ruby-on-rails-3 activerecord