Php Laravel联接两个表

Php Laravel联接两个表,php,mysql,laravel,laravel-query-builder,Php,Mysql,Laravel,Laravel Query Builder,我有两个表,即查看表和单击表,如下所示 id View_count Created_at 1 10 January 2 20 Febrauary 3 30 March id Click_count Created_at 1 20 January 2 40 March 3 30 May 我想得到基于月份的计数数据。通过查询,我希望获得如下表信息 Creat

我有两个表,即查看表和单击表,如下所示

id  View_count  Created_at
1   10         January
2   20         Febrauary
3   30          March

id  Click_count Created_at
1   20          January
2   40           March
3   30            May
我想得到基于月份的计数数据。通过查询,我希望获得如下表信息

Created_at  View_count  Click_count
January         10         20
Febrauary       20  
March           30         40
May             30
我试过这样做:

$view_count= View::select(DB::raw("count(*) as count"))
        ->orderBy("created_at")
        ->groupBy(DB::raw("month(created_at)"))
        ->get()->toArray();
    $view_count= array_column($view_count, 'count');

$click_count= Click::select(DB::raw("count(*) as count"))
        ->orderBy("created_at")
        ->groupBy(DB::raw("month(created_at)"))
        ->get()->toArray();
    $click_count= array_column($click_count, 'count');


 $count_bymonth =  View::select(DB::raw('MONTHName(created_at) as month'))
        ->groupBy(DB::raw(' MONTH(created_at)'))
        ->get()->toArray();
    $count_bymonth  = array_column($count_bymonth , 'month');


 return view('testing')
       ->with('view_count', json_encode($view_count, JSON_NUMERIC_CHECK))
        ->with('click_count', json_encode($click_count, JSON_NUMERIC_CHECK))
        ->with('count_bymonth', json_encode($count_bymonth, JSON_NUMERIC_CHECK));
如果有人知道这个问题的答案,请尽快告诉我


谢谢。

您可以在一个查询中完成

$result = View::join('Click','Click.Created_at','=','View.Created_at')
          ->select(
           'Click_count.Created_at'
           DB::raw('SUM(Click_count) as Click_count'),
           DB::raw('SUM(View_count) as View_count')
          )
          ->groupBy('Click.Created_at')
          ->orderBy("created_at")
          ->get();

return view('testing')->with('result'); 

然后,您所要做的就是循环
结果

您可以在一个查询中完成

$result = View::join('Click','Click.Created_at','=','View.Created_at')
          ->select(
           'Click_count.Created_at'
           DB::raw('SUM(Click_count) as Click_count'),
           DB::raw('SUM(View_count) as View_count')
          )
          ->groupBy('Click.Created_at')
          ->orderBy("created_at")
          ->get();

return view('testing')->with('result'); 

然后,您所要做的就是循环
结果

使用laravel查询生成器连接

DB::table('View')
            ->join('Click', 'View.Created_at', '=', 'Click.Created_at')->get();

使用laravel查询生成器连接

DB::table('View')
            ->join('Click', 'View.Created_at', '=', 'Click.Created_at')->get();

如何使用上述查询按月份获取数据?如何插入到已创建的_中?时间戳还是仅仅是月份?它是一个时间戳。如何使用上述查询按月份获取数据?如何插入到已创建的?时间戳还是月份?这是一个时间戳。我们可以从两个具有唯一日期的表中获取计数数吗?您尝试了代码吗?这是一个新问题吗?还是和这个问题有关?我试过了,先生,但没有得到预期的结果。我想从两个表中获取基于月份的数据计数。我们可以从两个具有唯一日期的表中获取计数数吗?您尝试了代码吗?这是一个新问题吗?还是和这个问题有关?我试过了,先生,但没有得到预期的结果。我想从两个表中获得基于月份的数据计数