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 相关文章推荐
Linux下进行MYSQL编程时插入中文乱码的解决方案
Mar 15 PHP
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
PHP 导出数据到淘宝助手CSV的方法分享
Feb 27 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
Oct 14 PHP
thinkphp文件处理类Dir.class.php的用法分析
Dec 08 PHP
php中switch与ifelse的效率区别及适用情况分析
Feb 12 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
标准版Eclipse搭建PHP环境的详细步骤
Nov 18 PHP
YII Framework框架教程之日志用法详解
Mar 14 PHP
php中通过eval实现字符串格式的计算公式
Mar 18 PHP
一文看懂PHP进程管理器php-fpm
Jun 01 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
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
javascript 隔行换色函数代码
2010/10/24 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
2013/10/17 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
VueJs路由跳转——vue-router的使用详解
2017/01/10 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
Webpack path与publicPath的区别详解
2018/05/03 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
vue实现滑动到底部加载更多效果
2020/10/27 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
常用python编程模板汇总
2016/02/12 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
Python sep参数使用方法详解
2020/02/12 Python
Python容器类型公共方法总结
2020/08/19 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
2021/01/15 Python
英国时尚服饰电商:Boohoo
2017/10/12 全球购物
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
未婚证明书模板
2014/10/08 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
仓管员岗位职责
2015/02/03 职场文书
Nginx实现会话保持的两种方式
2022/03/18 Servers