【问题标题】:How to use WHERE IN in Rails 3 that works across database systems?如何在跨数据库系统的 Rails 3 中使用 WHERE IN?
【发布时间】:2013-03-20 08:03:09
【问题描述】:

我对 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 语句的作用,只是这个答案满足了我的需要:How do I (or can I) SELECT DISTINCT on multiple columns?) 更具体地说,我必须扩充以下 ActiveRecord 函数,以便它执行上述查询:

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

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-03-20
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      相关资源
      最近更新 更多