首頁 > 資料庫 > mysql教程 > 如何依關係計數對 Laravel 結果排序?

如何依關係計數對 Laravel 結果排序?

Barbara Streisand
發布: 2024-11-12 21:12:02
原創
548 人瀏覽過

How to Order Laravel Results by Relationship Count?

Laravel:按關係計數對結果進行排序

以多對多關係中的相關記錄數對資料庫結果進行排序可能是一項複雜的任務。讓我們探索針對這種場景的解決方案。

考慮以下資料庫架構:

hackathons
    id
    name
    ...

hackathon_user
    hackathon_id
    user_id

users
    id
    name
登入後複製

要根據參與者數量檢索最受歡迎的黑客馬拉松,我們需要使用聯接查詢並按黑客馬拉松ID 對結果進行分組,計算每個黑客馬拉鬆的參與人數。這可以使用以下查詢來實現:

$hackathons = DB::table('hackathons')
    ->join('hackathon_user', 'hackathon_user.hackathon_id', '=', 'hackathons.id')
    ->groupBy('hackathon_user.hackathon_id')
    ->select('hackathons.id', 'hackathons.name', DB::raw('COUNT(*) as participant_count'))
    ->orderBy('participant_count', 'desc')
    ->get();
登入後複製

此查詢將獲取按參與者數量排序的黑客馬拉松,其中最受歡迎的黑客馬拉松首先列出。

或者,如果使用Laravel 的Eloquent ORM,可以使用以下方式:

Hackathon::withCount('participants')->orderBy('participants_count', 'desc')->get();
登入後複製

這種方式比較方便直接,但是它依賴於Eloquent 的withCount() 方法,該方法在舊版的Laravel 中可能不可用。

以上是如何依關係計數對 Laravel 結果排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板