php laravel左连接leftJoin多条where语句

php laravel左连接leftJoin多条where语句

通常情况下我们在做leftjoin连接时需要对不止一个条件进行进行匹配,这时候就需要使用闭包方式,如下:

leftjoin('db', function ($join) {···}); 

leftjoin多条件查询,无非以下三种情况。

  1. 并且关系(&&)且为字段名称,使用on,代码示例如下:
$roomUuid = 1;
$chatInfo = DB::table('chat_info')
    ->where('chat_info.room_uuid', $roomUuid)
    ->leftJoin('user_rooms', function ($join) {
        $join->on('user_rooms.user_uuid', '=', 'chat_info.user_uuid')
            ->on('user_rooms.room_uuid', '=', 'chat_info.room_uuid');
    })

  1. 或者关系(||),将on改为orOn,代码示例如下:
$roomUuid = 1;
$chatInfo = DB::table('chat_info')
    ->where('chat_info.room_uuid', $roomUuid)
    ->leftJoin('user_rooms', function ($join) {
        $join->on('user_rooms.user_uuid', '=', 'chat_info.user_uuid')
            ->orOn('user_rooms.room_uuid', '=', 'chat_info.room_uuid');
    })

  1. 多条件查询,使用where,并使用use传递参数,代码示例如下:
$roomUuid = 1;
$chatInfo = DB::table('chat_info')
    ->where('chat_info.room_uuid', $roomUuid)
    ->leftJoin('user_rooms', function ($join) use ($chatInfo) {
        $join->on('user_rooms.user_uuid', '=', 'chat_info.user_uuid')
            ->where('user_rooms.room_uuid', '=', $chatInfo);
    })

原文地址:http://www.fidding.me/article/40

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112309.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • clientWidth、offsetWidth等介绍[通俗易懂]

    clientWidth、offsetWidth等介绍[通俗易懂]网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth(包括边线的宽)网页可见区域高:document.body.offsetHeight(包括边线的宽)网页正文全文宽:document.body.scrollWidth网页正文全文高:do…

    2022年7月22日
    16
  • nginx随着passenger构造ruby on rails页

    nginx随着passenger构造ruby on rails页

    2022年1月11日
    59
  • 宝塔安装腾讯云ssl证书_宝塔 泛域名

    宝塔安装腾讯云ssl证书_宝塔 泛域名宝塔部署腾讯云服务SSL证书

    2025年9月6日
    4
  • Animation用法_animation动画效果

    动画类型Android的animation由四种类型组成XML中 alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果JavaCode中AlphaAnimation渐变透明度动画效

    2022年3月9日
    50
  • pycharm常用快捷键总结

    pycharm常用快捷键总结工欲善其事,必先利其器。Python开发利器Pycharm常用快捷键以及配置如下,相信有了这些快捷键,你的开发会事半功倍!一常用快捷键编辑类:Ctrl+D复制选定的区域或行Ctrl+Y删除选定的行Ctrl+Alt+L代码格式化Ctrl+Alt+O优化导入(去掉用不到的包导入)Ctrl+鼠标简介/进入代码定义Ctrl+/行注释、取消注释C…

    2022年8月26日
    5
  • 深度卷积网络_卷积神经网络输出大小

    深度卷积网络_卷积神经网络输出大小在计算机视觉领域,卷积神经网络(CNN)已经成为最主流的方法,比如最近的GoogLenet,VGG-19,Incepetion等模型。CNN史上的一个里程碑事件是ResNet模型的出现,ResNet可以训练出更深的CNN模型,从而实现更高的准确度。ResNet模型的核心是通过建立前面层与后面层之间的“短路连接”(shortcuts,skipconnection),这有助于训练过程中梯度的反向传播,从而能训练出更深的CNN网络。今天我们要介绍的是DenseNet(Denselyconnectedcon

    2022年9月27日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号