2016-11-18 38 views
0

我正在運行一個查詢來搜索與表名爲Stock的表不相關的所有產品。庫表中的字段「Ruta」與在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") 

與此查詢的問題是,它顯示我重複的產品,根據以該產品所關聯的股票的數量,我怎麼能解決呢?

感謝

回答

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')

+0

它的工作原理,但我有一個小問題,我正在通過「r」搜索這些記錄uta「,當de產品與另一個具有不同」ruta「的庫存有關時,並且我正在經歷參數的」ruta「已經與該文章相關,查詢一直給我帶來同樣的文章,但是庫存用「ruta」id params已經有文章了,我該如何解決這個問題? – LuisC

+0

@LuisC對不起,我不明白你想要什麼。 –

+0

如果產品與「Ruta」(這是股票的現貨)的庫存相關,等於我通過url發送的id,則查詢不應顯示產品,但如果此產品也與另一個產品有關具有不同「Ruta」的庫存查詢向我顯示產品,但不應該。在這裏,我把我的問題http://stackoverflow.com/questions/40687403/search-records-by-query-consult – LuisC

1

,你可以不喜歡它

Stock.includes(:products).where(products: { stock_id: nil })