首页 > 其他分享 >group by和union,Laravel分页

group by和union,Laravel分页

时间:2023-01-30 12:23:06浏览次数:36  
标签:Laravel group union join boutique user aime article id

        $res3 =   DB::table('users')
            ->join('user_folow_boutiques', 'user_folow_boutiques.user_id', '=', 'users.id')
            ->join('boutique', 'boutique.id', '=', 'user_folow_boutiques.boutique_id')
            ->join('type_article', 'type_article.boutique_id', '=', 'boutique.id')  
            ->join('article', 'type_article.id', '=', 'article.type_article_id')
            ->join(DB::raw('(SELECT article.id c_id, count(user_aime_article.id) as nbrlik FROM article JOIN user_aime_article on user_aime_article.article_id = article.id GROUP BY user_aime_article.article_id) e'),'article.id','=','e.c_id')
            ->where('users.id','=',$user_id)
            ->where('e.nbrlik','=',50)
            ->select(DB::raw('article.*,article.created_at as date,  e.nbrlik'))
            ->union($res)
            ->union($res2)
            ->groupBy('article.id')
            ->orderBy('date','DESC');
        $sql = $res3->toSql();

        $result = \DB::table(\DB::raw("($sql) as a"))->mergeBindings($res3)
            ->Paginate(10);

 

 public static function getActu($user_id,$page){
    $paginate = 5;
    //  1 selectionnée tous les article publier par les shop suivi
    $res = DB::table('users')
        ->join('user_folow_boutiques', 'user_folow_boutiques.user_id', '=', 'users.id')
        ->join('boutique', 'boutique.id', '=', 'user_folow_boutiques.boutique_id')
        ->join('type_article', 'type_article.boutique_id', '=', 'boutique.id')  
        ->join('article', 'type_article.id', '=', 'article.type_article_id')
        ->where('users.id','=',$user_id)
        ->select(DB::raw('article.*,article.created_at as date,null as nbrlik'));

    // 2 Selectionnée tous les produit amai par les utilisateur suivit Arevoir demain 
   $res2 =   DB::table('users')
        ->join('user_follow_user', 'user_follow_user.user_id_1', '=', 'users.id')
        ->join('user_aime_article', 'user_follow_user.user_id_2', '=', 'user_aime_article.user_id')
        ->join('article', 'user_aime_article.article_id', '=', 'article.id')
        ->where('users.id','=',$user_id)
        ->select(DB::raw('article.*,user_aime_article.created_at as date, null as nbrlik') )
        ->distinct();
        // Selectioner tous les proiduit  des boutique suivi par le user qui ont 50 j'aime
    $res3 =   DB::table('users')
        ->join('user_folow_boutiques', 'user_folow_boutiques.user_id', '=', 'users.id')
        ->join('boutique', 'boutique.id', '=', 'user_folow_boutiques.boutique_id')
        ->join('type_article', 'type_article.boutique_id', '=', 'boutique.id')  
        ->join('article', 'type_article.id', '=', 'article.type_article_id')
        ->join(DB::raw('(SELECT article.id c_id, count(user_aime_article.id) as nbrlik FROM article JOIN user_aime_article on user_aime_article.article_id = article.id GROUP BY user_aime_article.article_id) e'),'article.id','=','e.c_id')
        ->where('users.id','=',$user_id)
        ->where('e.nbrlik','=',50)
        ->select(DB::raw('article.*,article.created_at as date,  e.nbrlik'))
        ->union($res)
        ->union($res2)
        ->groupBy('article.id')
        ->orderBy('date','DESC')
        ->skip($paginate * ($page - 1) )->take($paginate)->get();
        return $res3;
}

 

标签:Laravel,group,union,join,boutique,user,aime,article,id
From: https://www.cnblogs.com/fenle/p/17075098.html

相关文章

  • laravel composer扩展包的开发到发布
    1、通过Composer创建项目composercreate-project--prefer-distlaravel/laravelpkg2、新建目录接着进入此项目中,创建目录 packages/{your_name}/{your_package......
  • laravel groupBy 分页
    $model=DB::table('tablebname')->where(function($query)use($res){ $query->where('xx','xx');})->selectRaw("area,from_un......
  • django Orm group by
    在django的orm里面想要groupby一个模型的时候遇到一个问题,根据官方文档的调教,怎么都没办法。1、ormmodelclassCvmAlarmDataByMetric(models.Model):"""cv......
  • laravel出现Please provide a valid cache path.
    访问首页出现如下提示:Pleaseprovideavalidcachepath.解决方法如下:1、确保storage目录下有如app,framework,views三个目录。2、确保storage/framework目录下也有cach......
  • 7.15 SQL Server UNION联合查询(并集)
    SQLServerUNION(并集)目录SQLServerUNION(并集)简介UNION与UNIONALLUNION(联合)与JOIN(联接)示例UNION与ORDERBY示例简介SQLServer联合查询SQLServerUNION是一......
  • 自定义ViewGroup onMeasure()
    参考:Android中View绘制流程以及invalidate()等相关方法分析......
  • Laravel + Vue 3(Vite、TypeScript)SPA 设置
    在本教程中,我将向大家展示如何使用Laravel+Vue3使用typescript和Vite设置你自己的单页应用程序。这是在Laravel项目中添加PWA的手动方法。我们不会使用Inerti......
  • JavaScript – Group / GroupToMap
    前言arraygroupby是一个很常见的功能.但JS却没有build-in方法.一直到es2023才有group和groupToMap(目前没有任何游览器支持,但已经有polyfill了).这篇......
  • Laravel9+Vue+ElementUI后台快速开发框架
    项目介绍一款PHP语言基于Laravel9.x、Vue、ElementUI等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本......
  • Laravel9+Vue+ElementUI快速搭建后台管理系统
    项目介绍一款PHP语言基于Laravel9.x、Vue、ElementUI等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本......