首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel连接两个表

Laravel连接两个表
EN

Stack Overflow用户
提问于 2017-08-08 18:07:39
回答 2查看 3.2K关注 0票数 0

我有两个表,即View table和Click table,如下所示

代码语言:javascript
复制
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

我想获取基于月份的计数数据。通过查询,我希望获得如下所示的表信息。

代码语言:javascript
复制
Created_at  View_count  Click_count
January         10         20
Febrauary       20  
March           30         40
May             30

我试过这样做:

代码语言:javascript
复制
$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));

如果有人知道答案,请尽快让我知道。

谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-08 18:17:42

您可以在一个查询中完成此操作

代码语言:javascript
复制
$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

票数 2
EN

Stack Overflow用户

发布于 2017-08-08 18:38:52

使用laravel查询构建器连接

代码语言:javascript
复制
DB::table('View')
            ->join('Click', 'View.Created_at', '=', 'Click.Created_at')->get();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45565434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档