sql - activerecord 相当于 SQL 'minus'

标签 sql ruby-on-rails activerecord

从另一个查询结果中减去查询结果的 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/

相关文章:

sql - 停止 SQL Server 运行直到需要为止

sql - SQL Server 2000 中的多参数搜索

ruby-on-rails - Rails 3 在迁移问题中添加外键

ruby-on-rails - 在 Ruby on Rails 中声明关联

mysql - 连接两个表时检索所有数据并按项目计数

c# - 如何配置 WCF 来处理大量并发用户?

ios - 用于实时查询/推送通知的数据库

ruby-on-rails - carrierwave gem 可以同时在 AWS-S3 和本地文件系统上存储文件吗?

ruby-on-rails - rails : Uploading Images to Amazon S3 via Carrierwave only works on "Edit"

ruby-on-rails - 在模型类方法上运行辅助方法