Ruby on rails 使用activerecord在同一字段上执行多个子查询
在activerecord中,最好不使用文字sql,我试图大致做到这一点: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(
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我更新了我的答案,这个解决方案还是不能解决你的问题,如果不能,你能解释一下原因吗