tp5.1 框架join方法用法实例分析


Posted in PHP onMay 26, 2020

本文实例讲述了tp5.1 框架join方法用法。分享给大家供大家参考,具体如下:

JOIN方法用于根据两个或多个表中的列之间的关系,从这些表中查询数据。join通常有下面几种类型,不同类型的join操作会影响返回的数据结果。

  • INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行

说明

join ( mixed join [, mixed $condition = null [, string $type = 'INNER']] )
leftJoin ( mixed join [, mixed $condition = null ] )
rightJoin ( mixed join [, mixed $condition = null ] )
fullJoin ( mixed join [, mixed $condition = null ] )

参数

join

要关联的(完整)表名以及别名

支持的写法:

  • 写法1:[ '完整表名或者子查询'=>'别名' ]
  • 写法2:'不带数据表前缀的表名'(自动作为别名)
  • 写法2:'不带数据表前缀的表名 别名'

condition

关联条件。可以为字符串或数组, 为数组时每一个元素都是一个关联条件。

type

关联类型。可以为:`INNER`、`LEFT`、`RIGHT`、`FULL`,不区分大小写,默认为`INNER`。

返回值

模型对象

举例

Db::table('think_artist')
->alias('a')
->join('work w','a.id = w.artist_id')
->join('card c','a.card_id = c.id')
->select();
Db::table('think_user')
->alias('a')
->join(['think_work'=>'w'],'a.id=w.artist_id')
->join(['think_card'=>'c'],'a.card_id=c.id')
->select();

默认采用INNER JOIN 方式,如果需要用其他的JOIN方式,可以改成

Db::table('think_user')
->alias('a')
->leftJoin('word w','a.id = w.artist_id')
->select();

表名也可以是一个子查询

$subsql = Db::table('think_work')
->where('status',1)
->field('artist_id,count(id) count')
->group('artist_id')
->buildSql();
 
Db::table('think_user')
->alias('a')
->join([$subsql=> 'w'], 'a.artist_id = w.artist_id')
->select();

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP网上调查系统
Oct 09 PHP
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
PHP中的多行字符串传递给JavaScript的两种方法
Jun 19 PHP
PHP输出九九乘法表代码实例
Mar 27 PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 PHP
Yii框架数据模型的验证规则rules()被执行的方法
Dec 02 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
Dec 21 PHP
PHP析构函数destruct与垃圾回收机制的讲解
Mar 22 PHP
tp5.1框架数据库子查询操作实例分析
May 26 #PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 26 #PHP
Laravel 修改验证异常的响应格式实例代码详解
May 25 #PHP
tp5.1 框架查询表达式用法详解
May 25 #PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 #PHP
thinkphp5.1 框架导入/导出excel文件操作示例
May 25 #PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 #PHP
You might like
使用PHP Socket写的POP3类
2013/10/30 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
php实现encode64编码类实例
2015/03/24 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
代码详解Vuejs响应式原理
2017/12/20 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
2018/08/25 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
python 循环数据赋值实例
2019/12/02 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
详解HTML5 Canvas绘制时指定颜色与透明度的方法
2016/03/25 HTML / CSS
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
物流专业大学的自我评价
2014/01/11 职场文书
一份创业计划书范文
2014/02/08 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
工程承包协议书
2014/04/22 职场文书
大学专科自荐信
2014/06/17 职场文书
竞选纪律委员演讲稿
2014/09/13 职场文书
2014年度个人工作总结
2014/11/07 职场文书
免职通知
2015/04/23 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
Windows环境下实现批量执行Sql文件
2021/10/05 SQL Server
如何利用React实现图片识别App
2022/02/18 Javascript