从另一个查询结果中减去查询结果的 rails 方法是什么?特定于数据库的 SQL 示例是:
SELECT Date FROM Store_Information
MINUS
SELECT Date FROM Internet_Sales
最佳答案
我将把它放在混合中 - 不是解决方案,但可能有助于进展:
我能想到的最好的方法是使用 NOT IN:
StoreInformation.where('date NOT IN (?)', InternetSale.all)
那是 Rails 3 - Rails 2 将是:
StoreInformation.all(:conditions => ['date NOT IN(?)', InternetSale.all])
但是这两者都会首先从 internet_sales 中选择所有内容;您真正想要的是在数据库引擎中执行所有操作的嵌套查询。为此,我认为您必须进入 find_by_sql 并给出一个嵌套查询。
显然,这假设您使用的是 MySQL!哈。
关于sql - activerecord 相当于 SQL 'minus',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3428852/