我必须使用Active Relation进行SQL查询。
选择*从(从purchase_order_items
选择*从
created_at
desc)as abc where(fsn ='9788183071000'and sku
='SKU0000000000000')或(fsn ='BAGD7SHVZZPPVAZH'并且sku ='SKU0000000000000')或(fsn ='CAMCUTS25Z2HSFE8'和sku ='SKU0000000000000')由fsn,sku分组
什么是最佳和优化的方法。我试过了
PurchaseOrderItem.where(“(fsn ='9788183071000'和sku
='SKU0000000000000')或(fsn ='BAGD7SHVZZPPVAZH'并且sku ='SKU0000000000000')或(fsn ='CAMCUTS25Z2HSFE8'和sku ='SKU0000000000000')“)。order('created_at')
但是然后没有按要求进行分组。表由rails中的模型名称决定。
有什么办法可以进行上述查询?
我不想将其作为普通查询传递。
最佳答案
您可以使用Arel来进行组合的SQL查询。
p = PurchaseOrderItem.arel_table
User.where((p[:fsn].eq('9788183071000').and(p[:sku].eq('SKU0000000000000')).or(p[: fsn].eq('BAGD7SHVZZPPVAZH').and(p[:sku].eq('SKU0000000000000')).or(p[: fsn].eq('CAMCUTS25Z2HSFE8').and(p[:sku].eq('SKU0000000000000'))).order("fsn, sku")