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 相关文章推荐
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
php时间戳格式化显示友好的时间函数分享
Oct 21 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
PHP函数按引用传递参数及函数可选参数用法示例
Jun 04 PHP
php用xpath解析html的代码实例讲解
Feb 14 PHP
PHP使用CURL实现下载文件功能示例
Jun 03 PHP
php设计模式之策略模式应用案例详解
Jun 17 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
Feb 07 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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:风雨欲来 路在何方?
2006/10/09 PHP
实用函数2
2007/11/08 PHP
PHP session有效期session.gc_maxlifetime
2011/04/20 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
JavaScript中链式调用之研习
2011/04/07 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
Koa日志中间件封装开发详解
2019/03/09 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
python3 读取Excel表格中的数据
2018/10/16 Python
QML使用Python的函数过程解析
2019/09/26 Python
python进行参数传递的方法
2020/05/12 Python
python实现邮件循环自动发件功能
2020/09/11 Python
python 实现aes256加密
2020/11/27 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
法制演讲稿
2014/09/10 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL