我正在运行查询来搜索与名为Stock的表无关的所有产品。字段" Ruta" Stock表中的内容与Url中的id不同。我是按照以下方式进行的:
@productos = Producto.joins('left outer join stock on productos.Clave=stock.Articulo').select('productos.*,stock.Articulo').where('stock.ruta != ? AND productos.Status = ?', params[:id], "A")
此查询的问题在于它向我显示重复的产品,具体取决于产品所关联的库存数量,我该如何解决?
由于
答案 0 :(得分:1)
尝试添加distinct
:
@productos = Producto.joins('left outer join stock on productos.Clave=stock.Articulo').select('productos.*,stock.Articulo').where('stock.ruta != ? AND productos.Status = ?', params[:id], "A").distinct
或者您可以添加group('productos.Clave')
答案 1 :(得分:1)
你可以像
那样做Stock.includes(:products).where(products: { stock_id: nil })