簡體   English   中英

Laravel 5.2左聯接一對一唯一的具有最高值列的行

[英]Laravel 5.2 left join one to many only row with column of highest value

我試圖用雄辯的一對多關系進行左聯接。 我只想獲得sort_order列中具有最高值的行。

到目前為止,我的查詢看起來像這樣:

Package::select('packages.*')
        ->leftJoin('package_routes', 'package_routes.package_id', '=', 'packages.id')
        ->leftJoin('package_route_items', function($join){
            $join->on('package_route_items.package_route_id', '=', 'package_routes.id')
                ->where(???);
        })->...//do more stuff to query here

如果我什至根本不應該使用where,那么我會被困在where子句中。

由於我不知道所有查詢會嘗試簡化條件的地方(您可能必須調整列名和語法

添加use DB; 在控制器/模型的開頭

$data = DB::table('packages')
->select('packages.*, package_route_items.company_id, package_routes.company_id')
    ->join('package_routes', 'package_routes.package_id', '=', 'packages.id')
    ->join('package_route_items.package_route_id', '=', 'package_routes.id')
    ->orderBy('packages.value_column', 'DESC')->first();

到目前為止,據您的描述,這就是我所了解的。 它未經測試,但我認為應該可以進行較小的編輯。

像您這樣的類似問題在此處此處 (希望它比我的回答更能幫助您)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM