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的ob_start() 控制您的浏览器cache
Aug 03 PHP
PHP的explode和implode的使用说明
Jul 17 PHP
解决File size limit exceeded 错误的方法
Jun 14 PHP
通过table标签,PHP输出EXCEL的实现方法
Jul 24 PHP
PHP date函数常用时间处理方法
May 11 PHP
PHP SOCKET编程详解
May 22 PHP
php设计模式之委托模式
Feb 13 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 PHP
Yii CFileCache 获取不到值的原因分析
Feb 08 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 PHP
thinkPHP事务操作简单案例分析
Oct 17 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
杏林同学录(八)
2006/10/09 PHP
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
PHP 身份证号验证函数
2009/05/07 PHP
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
php写的带缓存数据功能的mysqli类
2012/09/06 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
10条php编程小技巧
2015/07/07 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
慕课网题目之js实现抽奖系统功能
2017/09/19 Javascript
vue权限管理系统的实现代码
2019/01/17 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
用Python编写web API的教程
2015/04/30 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
一百行python代码将图片转成字符画
2021/02/19 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
弘扬雷锋精神演讲稿
2014/05/10 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
储备店长岗位职责
2015/04/14 职场文书
新员工辞职信范文
2015/05/12 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
心术观后感
2015/06/11 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
MySQL锁机制
2021/04/05 MySQL
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL
详解pytorch创建tensor函数
2022/03/22 Python
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js