Heim > Datenbank > MySQL-Tutorial > Wie ordne ich Laravel-Ergebnisse nach Beziehungsanzahl?

Wie ordne ich Laravel-Ergebnisse nach Beziehungsanzahl?

Barbara Streisand
Freigeben: 2024-11-12 21:12:02
Original
548 Leute haben es durchsucht

How to Order Laravel Results by Relationship Count?

Laravel: Ergebnisse nach Beziehungsanzahl sortieren

Datenbankergebnisse nach der Anzahl verwandter Datensätze in einer Viele-zu-Viele-Beziehung zu ordnen, kann eine komplexe Aufgabe sein. Lassen Sie uns eine Lösung für ein solches Szenario untersuchen.

Betrachten Sie das folgende Datenbankschema:

hackathons
    id
    name
    ...

hackathon_user
    hackathon_id
    user_id

users
    id
    name
Nach dem Login kopieren

Um die beliebtesten Hackathons basierend auf der Anzahl der Teilnehmer abzurufen, müssen wir eine Join-Abfrage verwenden und gruppieren Sie die Ergebnisse nach Hackathon-ID und zählen Sie die Anzahl der Teilnehmer für jeden Hackathon. Dies kann mit der folgenden Abfrage erreicht werden:

$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();
Nach dem Login kopieren

Diese Abfrage ruft die Hackathons sortiert nach Teilnehmerzahl ab, wobei der beliebteste Hackathon zuerst aufgeführt wird.

Alternativ bei Verwendung von Laravel's Eloquent ORM können Sie den folgenden Ansatz verwenden:

Hackathon::withCount('participants')->orderBy('participants_count', 'desc')->get();
Nach dem Login kopieren

Dieser Ansatz ist bequemer und unkomplizierter, aber er basiert auf Eloquents withCount()-Methode, die in älteren Versionen von Laravel möglicherweise nicht verfügbar ist.

Das obige ist der detaillierte Inhalt vonWie ordne ich Laravel-Ergebnisse nach Beziehungsanzahl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage