1
我是laravel的新手。Laravel離開僅加入右表最後一條記錄
我有兩個表。 1)產品 2)價格
-----------------------------
- products -
-----------------------------
- id_product | int (p_key) -
- name | varchar -
-----------------------------
-------------------------
- prices -
-----------------------------
- id_price | int (p_key) -
- id_product | int -
- price | int -
-----------------------------
的products
表保存有關的產品,如id
,name
數據,... 價格的變化都存儲在prices
表,其中最後一條記錄,應該是最新價格顯示給用戶。
現在我想通過products
進行搜索,並從prices
表中獲得每個產品的最後價格。這是我的查詢:
$result = DB::table('products')->leftJoin('prices', function($join) {
$join->on('products.id_product', '=', 'prices.id_product');
})->whereRaw(MY_SEARCH_FILTERS);
上面的代碼是錯誤的,因爲如果一個產品有4條記錄prices
表,那麼它將在$result
重複4次,而應僅顯示1的最後價格記錄。
感謝您的回答,但我認爲我沒有正確解釋問題。 「產品」表中可能有100條記錄。我希望所有人都可以從'prices'表中將他們的最後價格加入並與查詢一起提取。 – Agha
@Agha好的,然後使用group by和 - > get而不是 - > first。這應該完成這項工作。 –