laravel高级的Join语法详解以及使用Join多个条件

 更新时间:2019年10月16日 15:33:53   作者:Song  
今天小编就为大家分享一篇laravel高级的Join语法详解以及使用Join多个条件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在laravel中我们常常会使用join,leftjion和rightjoin进行连表查询,非常的方便,但是我今天遇到一个问题,就是链表查询需要on多个条件,即我要订单的id和发货人都一样,默认的join只支持单个查询,所以我下面总结两种方法:

一、使用原是表达式(不推荐)

原生SQL中我们可以通过如下方法进行

select * from `orders` left join `users` on `orders`.`usename`=`users`.`usename` and `orders`.`platform`=`users`.`platform` where `orders`.`order_status` = 2

那么结合laravel,我们可以所以

DB::select('select * from `orders` left join `users` on `orders`.`usename`=`users`.`usename` and `orders`.`platform`=`users`.`platform` where `orders`.`order_status` = :id', ['id' => 1]);

二、使用高级的Join语法(推荐使用)

我们只需要所以如下代码即可完成我们的Join多个条件

DB::table('users')
  ->join('contacts', function ($join) {
    $join->on('users.id', '=','contacts.user_id')->on('users.usename', '=','contacts.usename');
    })
  ->get();

如果你想要了解更多,我们可以看一下文档中的描述:

让我们以传入一个闭包当作 join 方法的第二参数来作为开始。此闭包会接收 JoinClause 对象,让你可以在 join 子句上指定约束:

DB::table('users')
  ->join('contacts', function ($join) {
    $join->on('users.id', '=','contacts.user_id')->orOn(...);
    })
  ->get();

若你想要在连接中使用「where」风格的子句,则可以在连接中使用 where 和 orWhere 方法。这些方法会比较字段和一个值,来代替两个字段的比较:

DB::table('users')
    ->join('contacts', function ($join) {
      $join->on('users.id', '=', 'contacts.user_id')
         ->where('contacts.user_id', '>', 5);
    })
    ->get();

以上这篇laravel高级的Join语法详解以及使用Join多个条件就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • PHP结合Jquery和ajax实现瀑布流特效

    PHP结合Jquery和ajax实现瀑布流特效

    php+ajax+jquery实现无限瀑布流布局 宽度是一定的高度不定的瀑布流布局 也可以说是无缝拼图 当浏览器滚动到底部时候自动加载图片,非常的实用,需要的小伙伴可以参考下。
    2016-01-01
  • Thinkphp连表查询及数据导出方法示例

    Thinkphp连表查询及数据导出方法示例

    这篇文章主要介绍了Thinkphp连表查询及数据导出方法,结合实例形式分析了thinkPHP连表查询的操作技巧与相关注意事项,需要的朋友可以参考下
    2016-10-10
  • 基于php流程控制语句和循环控制语句(讲解)

    基于php流程控制语句和循环控制语句(讲解)

    下面小编就为大家带来一篇基于php流程控制语句和循环控制语句(讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Zend Framework基本页面布局分析

    Zend Framework基本页面布局分析

    这篇文章主要介绍了Zend Framework基本页面布局方法,结合实例形式分析了Zend Framework页面布局的基本步骤与相关设置技巧,需要的朋友可以参考下
    2016-03-03
  • php 仿Comsenz安装效果代码打包提供下载

    php 仿Comsenz安装效果代码打包提供下载

    一直都觉得Comsenz产品的数据表安装效果很漂亮,今天抽了个空,把它的核心代码都提炼出来了。
    2010-05-05
  • 详解使用php-cs-fixer格式化代码

    详解使用php-cs-fixer格式化代码

    这篇文章主要介绍了使用php-cs-fixer格式化代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • php微信公众号开发之现金红包

    php微信公众号开发之现金红包

    这篇文章主要为大家详细介绍了php微信公众号开发之现金红包,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • PHP实现简单网站访客统计的方法实例

    PHP实现简单网站访客统计的方法实例

    这篇文章主要给大家介绍了关于PHP实现简单网站访客统计的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • windows 2008r2+php5.6.28环境搭建详细过程

    windows 2008r2+php5.6.28环境搭建详细过程

    这篇文章主要介绍了windows 2008r2+php5.6.28环境搭建详细过程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • php制作的简单验证码识别代码

    php制作的简单验证码识别代码

    近期研究一些突破验证码方面的知识,记录下来。一方面算是对这几天学习知识的总结帮助自己理解;另一方面希望对研究这方面的技术同学有所帮助;另外也希望引起网站管理者的注意,在提供验证码时多些考虑进去。由于刚刚接触这方面的知识,理解比较浅显,有错误再所难免
    2016-01-01

最新评论