Ruby on rails 使用activerecord在同一字段上执行多个子查询

Ruby on rails 使用activerecord在同一字段上执行多个子查询,ruby-on-rails,activerecord,subquery,Ruby On Rails,Activerecord,Subquery,在activerecord中,最好不使用文字sql,我试图大致做到这一点: Thing.where(:id => Link.select(:col1).where(subquery1), :id => Link.select(:col2).where(subquery2)) 我需要它在子查询之间给我一个AND,但是最后一个子查询会覆盖前面的子查询 注意:我在每个子查询中从链接表中选择不同的列 我已经试过了: t = Thing.where(:id => Link.where(

在activerecord中,最好不使用文字sql,我试图大致做到这一点:

Thing.where(:id => Link.select(:col1).where(subquery1), :id => Link.select(:col2).where(subquery2))
我需要它在子查询之间给我一个AND,但是最后一个子查询会覆盖前面的子查询

注意:我在每个子查询中从链接表中选择不同的列

我已经试过了:

t = Thing.where(:id => Link.where(subquery1))
t.where(:id => Link.where(subquery2))
还要注意,子查询的性质意味着我不能将AND放入单个子查询中

有没有办法在ActiveRecord中不借助SQL来实现这一点

我正在使用Rails 3和PostgreSQL


谢谢

将两个条件链接起来,然后将它们组合起来,可能会更好

Thing.where(:id => Link.select(:col1).where(subquery1)).where(:id => Link.select(:col2).where(subquery2))

这将在查询中的两个
之间添加

感谢您的回答,但这不起作用-请参阅,我还在每个子查询中选择不同的链接列。我会更新的question@whalabi我更新了我的答案,这个解决方案还是不能解决你的问题,如果不能,你能解释一下原因吗