如何在跨数据库系统工作的Rails 3中使用WHERE IN?

时间:2013-03-29 15:30:30

标签: sql ruby-on-rails activerecord where-in

我对Rails很陌生,对SQL类型语言有很少的经验。

我正在开发一个Rails 3项目,我的产品的测试版本和我的项目经理的产品版本使用两个不同的数据库系统(我使用MySQL,但我不确定他使用的是什么)。

我这里有一个通用的SQL语句,我想在我们的数据库中同时工作。有没有办法通过ActiveRecord功能来做到这一点?

SELECT * FROM MyRecords 
WHERE  (f1, f2, f3, f4) IN (
    SELECT f1, f2, f3, f4
    FROM   MyRecords
    GROUP  BY f1, f2, f3, f4
    HAVING count(*) = 1 
);

换句话说,我正在尝试执行“WHERE IN”语句(坦率地说,我甚至不知道WHERE IN语句的作用,只是这个答案符合我的要求:{{3} }) 更具体地说,我必须扩充以下ActiveRecord函数,以便它执行上述查询:

  def MyRecordFunction
    MyRecords.where('org_id=?', self.org_id).order('f4')
  end

谢谢。

1 个答案:

答案 0 :(得分:0)

查看ActiveRecord指南http://guides.rubyonrails.org/active_record_querying.html#specifying-conditions-on-the-joined-tables

有一些关于指定连接条件等信息。

无法更具体,因为您尚未共享您希望与之兼容的其他数据库。