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访问查询mysql数据的三种方法
Oct 09 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
Jun 01 PHP
php实现mysql同步的实现方法
Oct 21 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
Jun 23 PHP
PHP无法访问远程mysql的问题分析及解决
May 16 PHP
更改localhost为其他名字的方法
Feb 10 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
Mar 21 PHP
PHP判断JSON对象是否存在的方法(推荐)
Jul 06 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
Sep 15 PHP
PHP实现微信退款的方法示例
Mar 26 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使用GD2绘制几何图形示例
2017/02/15 PHP
javascript之更有效率的字符串替换
2008/08/02 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
如何写python的配置文件
2020/06/07 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
python中pdb模块实例用法
2021/01/15 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
建筑学推荐信
2013/11/03 职场文书
学习心得体会
2014/01/01 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
财政专业求职信范文
2014/02/19 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
微笑服务标语
2014/06/24 职场文书
团代会邀请函
2015/02/02 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL