Laravel 프레임 워크를 사용하여 쿼리에 대한 도움이 필요합니다. 나는 사용자 등급을 incude 몇 열로 사용자 명단을 짓고 있어요. 기본적으로 이니셜이있는 모든 활성 사용자를 선택하고 각 사용자에 대한 등급을 선택하기 위해 사용자 등급 테이블을 조인합니다. where_in
은 특정 등급 만 선택하는 것입니다. 내 문제는 명단에 있으며 사용자가 둘 이상의 평점을 갖고있는 경우에만 모든 등급이 아니라 한 등급을 선택합니다. 또한 group_by
없이 시도했지만 사용자가 보유한 평점의 수에 따라 테이블에 사용자가 중복됩니다 (예 : 사용자의 평점이 2 인 경우 행이 로스터에 두 번 표시됨).사용자 명단, 테이블에 합류했지만 데이터가 손실 됨
검색어 :
$users = DB::table('users')
->where('users.initials', '!=', '')
->left_join('user_ratings', 'user_ratings.uid', '=', 'users.uid')
->where_in('users_ratings.rid', array(6,17,21,20))
->group_by('users.uid')
->order_by('users.name')
->get();
테이블 :
the documentation 얼핏가 유창함 쿼리 빌더는 MySQL이 할 수있는 일을 할 수 있고, MySQL은 클라이언트에 배열을 반환 할 수없는 것을 알 수Users
=======
uid name
1 John
2 Jeff
3 Cathy
Ratings
======
rid uid
1 1
2 1
2 2
3 1
4 3