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下对数组进行排序的函数
Aug 08 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
PHP获取windows登录用户名的方法
Jun 24 PHP
PHP实现货币换算的方法
Nov 29 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
Jan 07 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
解决yii2左侧菜单子级无法高亮问题的方法
May 08 PHP
php分页查询的简单实现代码
Mar 14 PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
php微信公众号开发之现金红包
Apr 16 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 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
第十四节 命名空间 [14]
2006/10/09 PHP
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
PHP 5.3.0 安装分析心得
2009/08/07 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
2014/01/15 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
设定php简写功能的方法
2019/11/28 PHP
JS之小练习代码
2008/10/12 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
对 jQuery 中 data 方法的误解分析
2014/06/18 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
详解Vue路由自动注入实践
2019/04/17 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
简单介绍Python中的decode()方法的使用
2015/05/18 Python
深入解析Python中的lambda表达式的用法
2015/08/28 Python
Python中操作符重载用法分析
2016/04/29 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
python实现校园网自动登录的示例讲解
2018/04/22 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
基于pandas中expand的作用详解
2019/12/17 Python
Python各种扩展名区别点整理
2020/02/27 Python
Python实现对adb命令封装
2020/03/06 Python
python编写俄罗斯方块
2020/03/13 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
欧洲最大的品牌水上运动服装和设备在线零售商:Wuituit Outlet
2018/05/05 全球购物
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
枚举与#define宏的区别
2014/04/30 面试题
上班离岗检讨书
2014/01/27 职场文书
企业消防安全制度
2014/02/02 职场文书
Android自定义双向滑动控件
2022/04/19 Java/Android