Laravel雄辩地获取按小时分组的多个表的数据

时间:2016-10-14 14:17:22

标签: mysql sql laravel eloquent

这是我的预期输出:

{
{
    "visits": 10,
    "clicks": 2,
    "sales": 0,
    "hour": 15
}

{
    "visits": 24
    "clicks": 12,
    "sales": 1,
    "hour": 15
}
}

...

现在我可以通过3个查询获得结果:

$user->$visits
            ->select(DB::raw('count(id) as `visits`'),DB::raw('HOUR(created_at) hour'))
            ->groupby('hour')
            ->orderBy('hour')
            ->get();

$user->$clicks
            ->select(DB::raw('count(id) as `clicks`'),DB::raw('HOUR(created_at) hour'))
            ->groupby('hour')
            ->orderBy('hour')
            ->get();

$user->$sales
            ->select(DB::raw('count(id) as `sales`'),DB::raw('HOUR(created_at) hour'))
            ->groupby('hour')
            ->orderBy('hour')
           ->get()

然后合并这3个集合。

如何在一个查询中获得预期的输出?我很确定这是mysql的工作,不需要被php处理。

0 个答案:

没有答案