Ich möchte alle Benutzer mit dem Typ Student auswählen und alle Länder zählen, die mit ihnen verbunden sind. Die Reihenfolge sollte auf der Anzahl der Länder basieren, die mit ihnen verbunden sind.Laravel Abfrage - Reihenfolge nach Anzahl
Tabelle Benutzer:
id name
1 user1
2 user2
3 user3
4 user4
5 user5
Länder Tabelle:
id country_name
1 America
2 Australia
3 Argentina
4 Afghanistan
5 India
pivot_countries_user Tabelle:
id user_id country_id
1 1 1
2 1 2
3 2 1
4 3 1
5 4 2
6 5 2
7 4 3
8 1 4
user_type Tabelle:
id type user_id
1 student 1
2 student 2
3 teacher 3
4 lawyer 4
5 teacher 5
Hier ist die Laravel Abfrage, die ich versucht:
DB::table('users')
->leftjoin('pivot_countries_user','pivot_countries_user.user_id','=','users.id')
->leftjoin('countries','countries.id','=','pivot_countries_user.id')
->leftjoin('user_type','user_type.user_id','=','users.id')
->select('users.name','users.type',
DB::raw('count(pivot_countries_user.country_id)')) // should be per user but I don't know how
Erwartete Ausgabe:
name type total_countries
user1 student 3
user2 student 1
Mögliche Duplikat [Laravel MySQL orderBy count] (http://stackoverflow.com/questions/26375845/laravel-mysql-orderby- Anzahl) –