Quelle est la méthode de rails pour soustraire un résultat de requête d'un autre? Une base de données exemple spécifique de SQL serait:activerecord équivalent à SQL 'minus'
SELECT Date FROM Store_Information
MINUS
SELECT Date FROM Internet_Sales
Quelle est la méthode de rails pour soustraire un résultat de requête d'un autre? Une base de données exemple spécifique de SQL serait:activerecord équivalent à SQL 'minus'
SELECT Date FROM Store_Information
MINUS
SELECT Date FROM Internet_Sales
Je vais jeter ce dans le mélange - pas une solution, mais pourrait aider les progrès:
mieux que je peux penser est d'utiliser NOT IN:
StoreInformation.where('date NOT IN (?)', InternetSale.all)
C'est Rails 3 - Rails 2 serait:
StoreInformation.all(:conditions => ['date NOT IN(?)', InternetSale.all])
Mais ces deux seront d'abord sélectionner tout d'internet_sales; ce que vous voulez vraiment, c'est une requête imbriquée pour faire le tout dans le moteur de base de données. Pour cela, je pense que vous devrez entrer dans find_by_sql et juste donner une requête imbriquée.
De toute évidence, cela suppose que vous utilisez MySQL! HTH.
Je pense que la question intéressante ici concerne la soustraction d'un ensemble ActiveRecord d'un autre - post-requête –
IIRC: 'MINUS' est Oracle; 'EXCEPT' est ANSI –