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脚本代码
Feb 19 PHP
遭遇php的in_array低性能问题
Sep 17 PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 PHP
php显示时间常用方法小结
Jun 05 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
Jul 29 PHP
php mysql like 实现多关键词搜索的方法
Oct 29 PHP
PHP截取发动短信内容的方法
Jul 04 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
PHP实现登录验证码校验功能
May 17 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
Thinkphp 5.0实现微信企业付款到零钱
Sep 30 PHP
PHP命名空间定义与用法实例分析
Aug 14 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
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
2014/06/24 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
九种原生js动画效果
2015/11/11 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
js获取json中key所对应的value值的简单方法
2020/06/17 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
React全家桶环境搭建过程详解
2018/05/18 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
Python sys.argv用法实例
2015/05/28 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
Python输出指定字符串的方法
2020/02/06 Python
django model通过字典更新数据实例
2020/04/01 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
2015年幼儿园新年寄语
2014/12/08 职场文书
初中作文评语集锦
2014/12/25 职场文书
五一晚会主持词
2015/07/01 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
virtualenv隔离Python环境的问题解析
2022/06/21 Python