Rails Active Record Query Interfaceを使用して以下の簡単なSQLを書く方法を理解できないようです。Rails 4 Query Interface WHERE IN
SELECT *
FROM product_sales
WHERE (product_location_id, net_sale)
IN
(
SELECT product_location_id, MAX(net_sale)
FROM product_sales
GROUP BY product_location_id
)
AND (sale_date BETWEEN '2016-05-01' AND '2016-05-31');
注:次のリンクを確認しました。ただし、WHERE句の外側には1つの列しか指定しませんが、2つが必要です。
リンク:どのような援助のためのsubqueries in activerecord
感謝。
モデル
[ProductSale]
references :product_location, index: true, foreign_key: true
decimal :net_sale, precision: 16, scale: 6
date :sale_date
[ProductLocation]
UPDATEの関係
ProductSale -> belongs_to :product_location
ProductLocation -> has_many: product_sales
私のDBはMySQLのであることに注意してください。
提供してくださいお使いのモデルの関係、ちょうど必要と私の質問を更新し、関連するテーブル –
用ANSスキーム:クエリは次の通りであるため、単純な1対多の関係クエリを使用し、その要求のための
and
条件に参加しますinfo、ありがとう。 – add