我对我的交互者有这样的疑问:
Variant.where(code: context.codes)
.joins("LEFT OUTER JOIN prices p
ON p.variant_id = variants.id")
.select("code,
actual_price,
selling_price,
p.cost")
返回:
#<Interactor::Context codes=["PRDCTA-V1", "PRDCTA-V2"], body=[#<Variant id: nil, selling_price: nil, code: "PRDCTA-V2", actual_price: nil>,
#<Variant id: nil, selling_price: #<BigDecimal:7ff1d13b9118,'0.1E3',9(18)>, code: "PRDCTA-V1", actual_price: nil>]
我不知道为什么表中的
p.cost
没有出现,这意味着我的选择是错误的。我试图将其更改为prices
,cost
仍然不起作用。我的预期产出应该是
[#<Variant id: nil, selling_price: nil, code: "PRDCTA-V2", actual_price: nil, cost:{value here}>,
最佳答案
请在选择“将别名分配给成本”中尝试此操作
p.cost AS price_cost
然后,通过
variants.first.price_cost
或者,从
attributes
variants.first.attributes['cost']
将退还费用。
希望能有帮助!
关于sql - 使用select从其他表中获取列值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57637986/