相关疑难解决方法(0)

如何使用Laravel Query Builder从子查询中进行选择?

我想使用Eloquent ORM通过以下SQL获得价值.

- SQL

 SELECT COUNT(*) FROM 
 (SELECT * FROM abc GROUP BY col1) AS a;
Run Code Online (Sandbox Code Playgroud)

然后我考虑了以下内容.

- 代码

 $sql = Abc::from('abc AS a')->groupBy('col1')->toSql();
 $num = Abc::from(\DB::raw($sql))->count();
 print $num;
Run Code Online (Sandbox Code Playgroud)

我正在寻找更好的解决方案.

请告诉我最简单的解决方案.

sql query-builder laravel eloquent laravel-4

82
推荐指数
6
解决办法
11万
查看次数

Laravel Eloquent 使用 groupBy() 返回每个组的计数

我想groupBy()使用 Laravel Eloquent 执行任务。我在互联网上搜索过,没有找到任何雄辩的东西。有些人使用 groupBy() 查询和查询生成器这样的链接

但我想创建这样的查询:

Task::select('id')->groupBy('category_id')->count();
Run Code Online (Sandbox Code Playgroud)

此代码仅返回 first 的计数category_id。但我想计算所有category_id.

php group-by laravel eloquent laravel-5.2

8
推荐指数
2
解决办法
2万
查看次数

使用 GroupBy 计数在 Laravel 中不起作用

我想要用户和群组之间的聊天计数,按他们的聊天 ID。但是查询没有给出聊天数。它的空白。我在 Stack Overflow(Laravel Eloquent groupBy() AND countLaravel 基于 groupBy 获取结果计数)中看到了类似的问题,并使用了那些标记为正确但仍未获得所需结果的查询。

我正在使用以下查询:

$user_info = DB::table('chat_messages')
                ->select(DB::raw('count(*) as total'))
                ->where('viewed','=', '0')
                ->groupBy('chat_id','type')
                ->get();
Run Code Online (Sandbox Code Playgroud)

我的表结构如下:

{
"_id": ObjectId("571f549b1c8cb6972c8b4567"),
"message": "Testing Chat Functionality",
"type": "singlechat",
"date": "2016-04-26 11:44:27",
"from": "56b07a5a083f119a0b8b4569",
"to": "56b07a5a083f119a0b8b4569",
"chat_id": "56f65fc51c8cb6ca1a8b4567",
"status": "1",
"updated_at": ISODate("2016-04-26T11:44:27.624Z"),
"created_at": ISODate("2016-04-26T11:44:27.624Z"),
"viewed": "0"
}
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

Array
(
[0] => Array
    (
        [_id] => Array
            (
                [chat_id] => 56f65fc51c8cb6ca1a8b4567
                [type] => singlechat
            )

        [chat_id] => 56f65fc51c8cb6ca1a8b4567
        [type] => singlechat
        [count(*) …
Run Code Online (Sandbox Code Playgroud)

php mysql laravel-5

5
推荐指数
1
解决办法
727
查看次数