ActiveRecordウィザードを使用すると、AR命令でこのようなクエリを実行できるかどうかを判断できます。つまり、未処理のSQLを実行したり、Arelにダイビングしたりする必要はありませんか?ActiveRecord表記法に複雑なSQL postgresクエリ?
私は近くになっていますが、サブクエリを追加する方法を理解できないようです。私はRails 5.1.1です。
SELECT s.id as stock_id, s.count, adjustments.count as
adjustment_count, adjustments.reason as adjustment_reason
FROM
(SELECT * FROM stocks WHERE inventory_id = 6) AS s
LEFT JOIN adjustments
ON (s.id = adjustments.stock_id AND adjustments.reason='run_use')
最後の結果は、インベントリIDが6の在庫でなければなりません。私はActiveRecordを経由して取得しようとしているものです
私はNavicatはでRAW SQLを実行した場合、私はこの結果を取得するには、:
これは私が近づいたが、それはただstock_ids 11と10を生成します。
Stock.where(inventory:6)
.left_joins(:adjustments)
.where("adjustments.reason = 'run_use'")
これまでに試したことと何が効いていないのかを投稿した方が役に立ちます。それ以外の場合は、ActiveRecordとRaw SQLの両方でウィザードを使用して、手助けしようとする必要があります。 – jvillian
良い点! ARの声明で私の答えを編集しました。どのようにして生のSQLから "副問い合わせ"部分を含めるかに関する考え方、 "(SELECT * FROM株WHERE inventory_id = 6)AS available_stock"部分? – PDD
また、選択しようとしていることを明白に英語で述べるべきでしょう。それはちょっと混乱します。 – jvillian