我对 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 语句的作用,只是这个答案可以满足我的需要:我该怎么做(或者我可以) 在多列上选择 DISTINCT? ) 更具体地说,我必须扩充以下 ActiveRecord 函数,以便它执行上述查询:
def MyRecordFunction
MyRecords.where('org_id=?', self.org_id).order('f4')
end
谢谢你。