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 相关文章推荐
Cannot modify header information错误解决方法
Oct 08 PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 PHP
php通过session防url攻击方法
Dec 10 PHP
php为字符串前后添加指定数量字符的方法
May 04 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
Yii数据模型中rules类验证器用法分析
Jul 15 PHP
PHP中in_array函数使用的问题与解决办法
Sep 11 PHP
老生常谈文本文件和二进制文件的区别
Feb 27 PHP
php redis实现文章发布系统(用户投票系统)
Mar 04 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 PHP
php基于 swoole 实现的异步处理任务功能示例
Aug 13 PHP
使用PHP开发留言板功能
Nov 19 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
是否存在第一台收音机的说法
2021/03/01 无线电
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
jquery和ajax的关系详细介绍
2013/11/29 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
Kotlin学习第一步 kotlin语法特性
2017/05/25 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
使用Python对微信好友进行数据分析
2018/06/27 Python
python实现贪吃蛇游戏
2020/03/21 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
药学专业大学生自荐信
2013/09/28 职场文书
自主招生自荐书
2013/11/29 职场文书
给同事的道歉信
2014/01/11 职场文书
技能比赛获奖感言
2014/02/14 职场文书
座谈会主持词
2014/03/20 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
小学信息技术教学反思
2016/02/16 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL