Laravel 连接(Join)示例


Posted in PHP onOctober 16, 2019

内连接 ( 等值连接 )

$users = Book::join('auth','book.auth_id','auth.id')
 ->select('book.*','auth.name as auth_name')
 ->get()
 ->toArray()

转换成SQL语句 :

select `bl_book`.*, `bl_auth`.`name` as `auth_name` from `bl_book` inner join `bl_auth` on `bl_book`.`auth_id` = `bl_auth`.`id`

左连接

如果你想使用左连接 而不是 内连接 可以使用 left join 用法与join 一样

$users = Book::leftJoin('auth','book.auth_id','auth.id')
 ->select('book.*','auth.name as auth_name')
 ->get()
 ->toArray()

交叉连接

要执行“交叉连接”可以使用 crossJoin方法,传递你想要交叉连接的表名到该方法即可。交叉连接在第一张表和被连接表之间生成一个笛卡尔积:

$users = User::crossJoin('auth')
   ->get();

高级连接语句

你还可以指定更多的高级连接子句,传递一个闭包到join 方法作为第二个参数,该闭包将会接收一个JoinClause 对象用于指定 join 子句约束:

users = Book::join('auth',function ($join){
    $join->on('book.auth_id','auth.id')
     ->Where('book.id' , '>','3');
  })
  ->get()
  ->toArray();

联合(Union)

查询构建器还提供了“联合”两个查询的快捷方式,比如,你可以先创建一个查询,然后使用 union 方法将其和第二个查询进行联合:

$user_name = User::select('name'); 

$users = User::select('password')->union($user_name)->get();

注:unionAll 方法也是有效的,并且和 union 使用方式相同。

以上这篇Laravel 连接(Join)示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP语法速查表
Dec 06 PHP
PHP 字符串操作入门教程
Dec 06 PHP
PHP EOT定界符的使用详解
Sep 30 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
PHP处理JSON字符串key缺少双引号的解决方法
Sep 16 PHP
PHP程序员不应该忽略的3点
Oct 09 PHP
php面向对象编程self和static的区别
May 08 PHP
YII框架中搜索分页jQuery写法详解
Dec 19 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
Oct 24 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
Apr 02 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 #PHP
PHP 代码简洁之道(小结)
Oct 16 #PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 #PHP
Laravel6.2中用于用户登录的新密码确认流程详解
Oct 16 #PHP
PHP实现15位身份证号转18位的方法分析
Oct 16 #PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
Oct 16 #PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 #PHP
You might like
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
php调用c接口无错版介绍
2014/03/11 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
原生js实现ajax方法(超简单)
2016/09/20 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
Python读写Redis数据库操作示例
2014/03/18 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
python爬虫入门教程--利用requests构建知乎API(三)
2017/05/25 Python
Python中property属性实例解析
2018/02/10 Python
python判断设备是否联网的方法
2018/06/29 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
一套中级Java程序员笔试题
2015/01/14 面试题
黄河的主人教学反思
2014/02/07 职场文书
《新型玻璃》教学反思
2014/04/13 职场文书
专家推荐信模板
2014/05/09 职场文书
导游词之天津盘山
2019/11/01 职场文书
python文件目录操作之os模块
2021/05/08 Python
PyMongo 查询数据的实现
2021/06/28 Python
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android