sql - 使用 select 从不同的表中获取列值
问题描述
我的交互器上有这个查询:
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
,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']
会返还费用。
希望有帮助!
推荐阅读
- reactjs - 如何使用语义 UI 显示单个表单输入的错误消息?
- xaml - 使用 Uno.Platform ElevatedView 居中阴影
- r - 根据另一列中组的第一个实例减去一个值
- toad - Toad - 复制到另一个模式时出错“未为任何表配置 Where 子句。”
- javascript - 无法设置机器人的头像不和谐js
- python - 具有高维数据集的层次聚类图
- python - 盈透证券 Python API:contractDetails 请求打印良好,但不会返回
- ios - 上传任务完成后可以启动后台任务吗?
- python - 我如何在垂直方向而不是水平方向上不同的星星值?
- artificial-intelligence - 如何将此概念图转换为谓词演算?