首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将SQL转换为雄辩,以连接多个表并计数

将SQL转换为雄辩,以连接多个表并计数
EN

Stack Overflow用户
提问于 2018-02-13 11:04:20
回答 1查看 61关注 0票数 0

我一直认为这个SQL工作得很好,但是试图将它转换成雄辩的格式,它一直返回一个错误的SQL,它完全标记错误。用Laravel 5.5编码

代码语言:javascript
复制
Select arm_articles.article_topic, arm_articles.id, arm_articles.article_id, 
COUNT(arm_article_views.view_article_id) AS TotalViews, 
COUNT( arm_article_likes.liked_article_id) AS TotalLikes, 
COUNT( arm_article_comments.comment_article_id) AS TotalComments
FROM arm_articles 
LEFT JOIN  arm_article_views  ON  arm_articles.article_id = arm_article_views.view_article_id 
LEFT JOIN  arm_article_likes  ON  arm_articles.article_id = arm_article_likes.liked_article_id 
LEFT JOIN  arm_article_comments  ON  arm_articles.article_id = arm_article_comments.comment_article_id 
GROUP BY arm_articles.article_id 
ORDER BY TotalLikes, TotalLikes, TotalComments ASC`

但是,如何使雄辩的查询生成器无法工作:

代码语言:javascript
复制
return Datatables::of(PostModel::leftJoin('arm_article_views', 'arm_article_views.view_article_id', '=', 'arm_articles.article_id')
       ->leftJoin('arm_article_likes','arm_article_likes.liked_article_id', '=', 'arm_articles.article_id')
       ->leftJoin('arm_article_comments', 'arm_article_comments.comment_article_id','=','arm_articles.article_id')
       ->selectRaw(
           'arm_articles.*, 
           count(arm_article_views.view_article_id) AS ViewCount'
        ) 
        ->groupBy('arm_articles.article_id')->orderBy('ViewCount','DESC')
        ->where('arm_articles.article_contributor_id','=',$contributor_id)
        ->getQuery())->make(true);

任何提示都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2018-02-13 12:16:35

试着用这个:

代码语言:javascript
复制
DB::table('arm_articles')
        ->leftJoin('arm_article_views', 'arm_articles.article_id', '=', 'arm_article_views.view_article_id')
        ->leftJoin('arm_article_likes', 'arm_articles.article_id', '=', 'arm_article_likes.liked_article_id')
        ->leftJoin('arm_article_comments', 'arm_articles.article_id', '=', 'arm_article_comments.comment_article_id')
        ->groupBy('arm_articles.article_id', 'article_topic')
        ->select(
            DB::raw('count(arm_article_views.view_article_id) as TotalViews'),
            DB::raw('count(arm_article_likes.liked_article_id) as TotalLikes'),
            DB::raw('count(arm_article_comments.comment_article_id) as TotalComments'),
            'arm_articles.article_id',
            'article_topic'
        )->get();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48765310

复制
相关文章

相似问题

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