我需要一些查询帮助(使用 Laravel 框架)。我正在建立一个用户名册,其中包含一些包含用户评级的列。基本上,它选择所有具有首字母的活动用户并加入用户评级表以选择各个用户的评级。这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();
表:
Users
=======
uid name
1 John
2 Jeff
3 Cathy
Ratings
======
rid uid
1 1
2 1
2 2
3 1
4 3