我正在使用laravel 4.2,我有下表,看起来像这样
ID|chosen(boolean('0','1'))|subject|user_id
1|1 |cricket|2
2|0 |cricket|3
3|1 |rugby |2
我想选择拥有最多行数的user_id
,换句话说,选择所选列中包含最多1位的用户。因此,在这种情况下,用户2将是正确的结果。
答案 0 :(得分:1)
你可以这样使用查询构建器
$table = DB::table('table')
->select(array(DB::raw('count(User_ID) AS CountUser')))
->where('chosen', 1)
->orderBy('CountUser', 'desc')
->groupBy('User_ID')
->first();
答案 1 :(得分:-1)
我不知道laravel,但您可以使用以下sql进行查询
:t
这里是sqlfiddle链接:http://sqlfiddle.com/#!9/2ca40/1
编辑: 使用其他答案中建议的更有效的SQL:
select user_id from(select max(count_ones), user_id from(select
count(id) as count_ones,user_id from table_name where
chosen = 1 group by user_id) as table1) as table2