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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • goland 2021.10激活码【2021.10最新】

    (goland 2021.10激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html1STL5S9V8F-eyJsa…

  • navicat v15.0.23.0激活码【2021.8最新】「建议收藏」

    (navicat v15.0.23.0激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~Z9LZO4ZKWA-eyJsaWNlbnNlSWQiOi…

  • 职称计算机考试模块教程怎么用,如何巧妙的选择职称计算机考试模块?

    职称计算机考试模块教程怎么用,如何巧妙的选择职称计算机考试模块?【摘要】环球网校分享的如何巧妙的选择职称计算机考试模块?希望对大家备考有帮助,更多资料敬请关注环球职称计算机考试频道,网校会及时更新考试资料…… 相关推荐:全国2016年职称计算机考试报名时间汇总【摘要】环球网校分享的“如何巧妙的选择职称计算机考试模块?”希望对大家备考有帮助,更多资料敬请关注环球职称计算机考试频道,网校会及时更新考试资料……职称计算机考试,根据学习内容划分了十四类共25个模块,评…

  • CTK框架——CTK Widgets快速入门「建议收藏」

    CTK框架——CTK Widgets快速入门「建议收藏」CTK框架——CTKWidgets快速入门天山老妖S关注0人评论27888人阅读2018-05-2518:40:52CTK框架——CTKWidgets快速入门一、CTKWidgets模块简介1、CTKWidgets模块简介CTKWidgets模块是CTK封装的用于通用功能以及生物医学成像专用领域的Qt组件库。CTK中所有部分都有大量的测试相关代码,在源码目录下Libs/xxx/Testin/Cpp目录中。CTK官方文档:http://www.commont.

  • cardboard应用_cardboard怎么用

    cardboard应用_cardboard怎么用GoogleCardboard虚拟现实眼镜开发初步(一)虚拟现实技术简介不得不说这几年虚拟现实技术逐渐火热,伴随着虚拟现实设备的价格迅速平民化,越来越多的虚拟现实设备来到了我们眼前,也因此虚拟现实方面的开发离我们也越来越近。这几年迅速崛起的Oculus,其成功就在于拉近了虚拟现实与群众的距离,把原本价格高不可攀的虚拟现实设备放到了我们可以触手可及的位置,Oculus的技术开辟了

  • post-layout时序仿真_padstart

    post-layout时序仿真_padstartString.prototype.padStart把指定字符串填充到字符串头部,返回新字符串。语法str.padStart(targetLength[,padString])targetLength当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。padString可选填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。此参数的默认值为””示例’abc’.padStart(10);

发表回复

您的电子邮箱地址不会被公开。

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