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 相关文章推荐
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 PHP
聊天室php&mysql(五)
Oct 09 PHP
php socket客户端及服务器端应用实例
Jul 04 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
YII Framework框架教程之安全方案详解
Mar 14 PHP
php基于curl重写file_get_contents函数实例
Nov 08 PHP
thinkphp jquery实现图片上传和预览效果
Jul 22 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
PHP解析url并得到url参数方法总结
Oct 11 PHP
PHP生成随机码的思路与方法实例探索
Apr 11 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
Apr 27 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面向对象全攻略 (三)特殊的引用“$this”的使用
2009/09/30 PHP
php微信公众平台开发类实例
2015/04/01 PHP
PHP new static 和 new self详解
2017/02/19 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
node.js 中间件express-session使用详解
2017/05/20 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
详解关于Vuex的action传入多个参数的问题
2019/02/22 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
Python实现学生成绩管理系统
2020/04/05 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
Python3 assert断言实现原理解析
2020/03/02 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
巧用CSS3的calc()宽度计算做响应模式布局的方法
2018/03/22 HTML / CSS
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
eBay荷兰购物网站:eBay.nl
2020/06/26 全球购物
信息技术课教学反思
2016/02/23 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js
python用tkinter开发的扫雷游戏
2021/06/01 Python
Golang表示枚举类型的详细讲解
2021/09/04 Golang
JavaScript阻止事件冒泡的方法
2021/12/06 Javascript
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏