导航栏

文章

  • 首页
  • 查看历史

导航栏

  • 登陆
    • QQ登陆 微博登陆
  • 其他
    • 图标库
  • 夜间模式
  • 退出登录

【亲测】laravel join联查新写法【亲测】


作者:科技小锅盖             时间:2022-4-12 11:27             站长QQ:1540217035
return CouponModel::query()
   ->selectRaw('count(coupon_customer.id) as cnt,coupon.*')
   ->leftJoin('coupon_customer', function ($join) use($params) {
       $join->on('coupon.id', '=', 'coupon_customer.coupon_id')
           ->where('coupon_customer.customer_id', $params['customer_id'] ?? 0);
   })
   ->where(function ($query) use ($couponIds) {
       $query->where('coupon.limit_store', CouponModel::LIMIT_STORE_NO)
           ->orWhereIn('coupon.id', $couponIds);
   })
   ->groupBy('coupon.id')
   ->havingRaw('cnt < coupon.limit_total')
   ->paginate($params['size']);

近期忙疯就很少发了,记录一下新学到的联查方法,哈哈  这里只是实例,很多条件去掉了,简单记录一下这种写法。


selectRaw倒不是新学到的,而是join的闭包查询,一般都是只用join的联查,但是给联查的表再加条件的地方比较少,就用到了新的写法,看代码。


还有就是优惠券需要过滤掉达到自己领取次数的优惠券,开始的写法是分开写的还要单独过滤数据比较麻烦,分页的时候也比较麻烦,数据量大的时候就捉襟见肘了,这时候selectRaw和habingRaw两个写法的使用就很舒服了,这里只能用havingRaw,用having汇报错。


后面学习到不常用的写法还是要记录一下,不经常用就给忘了。


推荐

【亲测】前端复制粘贴 clipBoard.js 的使用【亲测】

2020-07-28 14:58:20

谷歌可能会效仿苹果为安卓系统提供有限的反广告网络追踪功能

2021-02-08 10:00:55

许久未见,整装新发乐檬K12系列

2020-12-02 09:32:15

【亲测】科技小锅盖推荐免费好用的api接口【亲测】

2020-09-04 10:07:44

【亲测】laravel 根据不同状态做数据统计 【亲测】

2021-08-02 14:23:10

学心理学有可能治愈自己和别人

2020-12-02 09:40:32

索尼已暂停向华为提供相机CMOS传感器

2020-09-23 13:19:58

阿里网盘快来了,你准备好了吗?

2020-08-27 11:50:54

【亲测】多个相同键值对的二维数组合并成一个二维数组【亲测】

2021-05-26 10:49:46

【亲测】composer私有库搭建过程 ,可不是网上烂大街的帖子【亲测】

2021-07-09 10:56:45

陕ICP备2021003534号-1 科技小锅盖 保留所有权利 网站地图 站长QQ:1540217035
    友情链接:
  • 米醋儿
  • 笔墨