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 相关文章推荐
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
Aug 19 PHP
php 文章采集正则代码
Dec 28 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
浅谈PHP强制类型转换,慎用!
Jun 06 PHP
怎样使用php与jquery设置和读取cookies
Aug 08 PHP
php不用正则验证真假身份证
Nov 06 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
PHP lcfirst()函数定义与用法
Mar 08 PHP
laravel执行php artisan migrate报错的解决方法
Oct 09 PHP
php array 转json及java 转换 json数据格式操作示例
Nov 13 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
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
csdn 批量接受好友邀请
2009/02/19 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
学习Node.js模块机制
2016/10/17 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
python发腾讯微博代码分享
2014/01/10 Python
python基于socket实现网络广播的方法
2015/04/29 Python
Python实现爬取逐浪小说的方法
2015/07/07 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
简单了解python协程的相关知识
2019/08/31 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
收银员岗位职责
2014/02/07 职场文书
《胡杨》教学反思
2014/02/16 职场文书
2015年副班长工作总结
2015/05/15 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript