我正在使用Laravel 5.3.30並面臨當前的問題。我試圖到處搜索,並沒有找到任何相關解決方案來滿足我的需求。因此,請在將此標記爲重複之前仔細閱讀我的問題。只有在急速加載條件滿足laravel ennial時才獲取記錄
表: [客戶],[消息]
關係:客戶有許多消息
我想要實現的是: 讓所有的客戶誰他最後的消息(contact_date)距離現在還不到一週。
我試了很多事情,包括以下內容:
Client::whereHas('messages', function($query){
$query->orderBy('contact_date', 'desc')
->whereDate('contact_date', '<', Carbon::now()->subDays(7));
})->get();
這是我現在告訴最好的選擇,但它不能滿足我的需求。
這將檢查客戶端的所有(contact_date),並將檢索消息少於所需日期的任何客戶端。
我的問題是: 我如何才能將這隻適用於最新的[消息]記錄?假設每個客戶端都有100條消息,並且只想將其應用於最新消息。所以,如果消息條件不符合,查詢將不會檢索客戶端。
一個GROUPBY由ACCOUNT_ID分組消息? –
@chasenyc你的意思是client_id,是的,儘管他的最後一條消息大於約束條件中設置的日期,但我還是試着讓它仍然得到客戶端,而不是因爲客戶端有其他消息少於那個日期。或者,也許我做錯了,請你說明一下。 – ClearBoth