group by和union,Laravel分页
$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;
}
group by和union,Laravel分页的更多相关文章
- Laravel 分页详解
Laravel分页很简单,但功能又很强大噢! 首先在控制器的方法中使用paginate(页面显示条数)方法,传入页面显示的条数 然后在模板页面使用方法render()来生成html元素 appends ...
- group By 和 Union 、 Union all的用法
我学习的是MySQL,学习写sql语句过程中遇到Group By 和 Union. 大家乐意看这两个链接,写的很好 Group By: www.cnblogs.com/rainman/archive/ ...
- php laravel加密 form表单认证 laravel分页
use Illuminate\Support\Facades\Crypt; echo Crypt::encrypt(123); //加密echo "<br>";//解密 ...
- laravel 分页
因为Laravel默认使用的是en语言文件所有咱们相应使用中文分页提示的话,可以按如下步骤操作: laravel4------------------------------------------- ...
- Laravel分页
Laravel使用的过程中,有些功能把前端页面的表达"写死了",比如分页的翻页按钮! 当然你会说Laravel的Bootstrap样式也很好看啊,但是实际项目中,翻页按钮常常需要满 ...
- laravel 分页和共多少条 加参数的分页链接
<div class="pagers "> <span class="fs pager">共 {{$trades->total() ...
- laravel 分页使用
分页 //对数据库结果分页 $users = DB::table('users')->paginate(15); //可以对 Eloquent 模型分页: $allUsers = User::p ...
- Laravel 分页 数据丢失问题解决
问题: to do list 中有32条数据,每页10条,共3页. 做完了一个事项之后,准备打卡,发现找不到这个事项. 数据库查询正常,有这一条数据. 原因: 发现是分页出了问题,第1页的数据和第2页 ...
- 为laravel分页样式制定class
做的项目有一个上翻页和下翻页,使用了框架提供的
- Laravel分页带参数的实现方法
控制器: $data['type'] = 5;$data['member_list'] = Member::orderBy('id', 'desc')->paginate(10);return ...
随机推荐
- redis acl 修改密码
#redis acl 修改密码 acl setuser readwrite on >111111111 ~* &* +@allacl setuser readonly on >11 ...
- Java基础——二维数组
package com.zhao.demo; public class Demo08 { public static void main(String[] args) { //二维数组 int[][] ...
- jadx 定位方法
目录 链接参数定位 链接参数定位 通过搜索请求链接中的参数来定位函数位置,如下图所示,请求链接为 https://www.python-spider.com/api/app1,app1为链接标识,可以 ...
- Unity3D——关于质量的设置
在Unity3D中,你开发一款游戏,可能需要同时发布到不同平台中.比如,对于PC平台,你可能需要引擎打包高质量的材质纹理,光照图信息.而对于Mobile平台,由于CPU上载数据到GPU需要一定宽带,想 ...
- ES语法(简)
1.上编写到怎样安装部署elk,这篇记录怎样简单使用.以便于后期复习使用. 2.登录localhost:5601进入开发者模式. 3.初学担心没有数据可以自己PUT数据比较直观的学习语法.这里可以用网 ...
- css中双冒号和单冒号区别
:--是指的伪类 ::--是指的伪元素 1.字面意思: 伪类,1.css中有类选择器,某些元素并未定义类名,就可以通过伪类赋予样式,如:[:nth-child(n)]:2.伪类可以应用于元素执行某种状 ...
- Leetcode——二分法bisect_left,bisect_right
!前提--列表有序 case 1 如果列表中没有元素x,那么bisect_left(ls, x)和bisec_right(ls, x)返回相同的值,该值是x在ls中"合适的插入点索引,使得数 ...
- 双指针_Leetcode刷题_13/100
算法解释 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务.也可以延伸到多个数组的多个指针. 若两个指针指向同一个数组,遍历的方向相同且不会相交,则也称为滑动窗口: 若两个指针指向同一 ...
- 基于MassTransit.RabbitMQ的延时消息队列
1 nuget包 <PackageReference Include="MassTransit.RabbitMQ" Version="8.0.2" /&g ...
- scrollToFirstError失效解决方法
ant design 使用 设置scrollToFirstError = true,表单验证失败后却没有滚动到第一个错误字段 解决方法: 在button按钮中加入 html-type = 'submi ...