1
users, companies 및 company_user 피벗 테이블이있는 동안 : 사용자 수에 따라 정렬 된 회사를 얻는 방법?Laravel Eloquent 대다수와 많은 관계
다음 쿼리는 거의 같습니다. 여기서 문제는 단지 적어도 한 명의 사용자 만있는 회사를 얻는 것입니다. 사용자 관계가없는 모든 회사는 고려하지 않았습니다.
$companies = Company::->with('users')
->join('company_user', 'companies.id', '=', 'company_user.company_id')
->selectRaw('companies.*, count(*) as `aggregate`')
->groupBy('companies.id')
->orderBy('aggregate', 'desc')
->get();
예 출력해야한다 : 위의 쿼리와
company_1 (users: 4)
company_2 (users: 2)
company_3 (users: 0)
company_4 (users: 0)
출력은 다음과 같습니다 당신의 회사 중 일부는 INNER JOIN
에 의해 제거되고 같은
company_1 (users: 4)
company_2 (users: 2)
. 이제 나는''company_1 (users : 4); company_3 (사용자 : 0); company_4 (사용자 : 0); company_2 (users : 2)''' – Kristo
@Kristo 그러나 원하는 출력이 아닙니까? –
두 명의 사용자가있는 company_2가 주문하지 않았습니다. 사용자가없는 회사 뒤에 있습니다. – Kristo