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表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
Aug 22 PHP
通达OA公共代码 php常用检测函数
Dec 14 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
Apr 26 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
php实现过滤字符串中的中文和数字实例
Jul 29 PHP
使用Appcan客户端自动更新PHP版本号(全)
Jul 31 PHP
PHP获取文本框、密码域、按钮的值实例代码
Apr 19 PHP
laravel中短信发送验证码的实现方法
Apr 25 PHP
PHP chr()函数讲解
Feb 11 PHP
使用laravel指定日志文件记录任意日志
Oct 17 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
Jun 06 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
Session保存到数据库的php类分享
2011/10/24 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
2012/06/17 PHP
关于php循环跳出的问题
2013/07/01 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
jQuery 常见学习网站与参考书
2009/11/09 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
2016/07/27 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
python中self原理实例分析
2015/04/30 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
python顺序执行多个py文件的方法
2019/06/29 Python
Python pip使用超时问题解决方案
2020/08/03 Python
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
香港艺人陈冠希创办的潮流品牌:JUICESTORE
2021/03/04 全球购物
2014客服代表实习自我鉴定
2014/09/18 职场文书
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫