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 获取select下拉列表框的值
May 08 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
php中如何同时使用session和cookie来保存用户登录信息
Jul 05 PHP
Server.HTMLEncode让代码在页面里显示为源代码
Dec 08 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
php绘制圆形的方法
Jan 24 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
phpStudy 2016 使用教程详解(支持PHP7)
Oct 18 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
php7 图形用户界面GUI 开发示例
Feb 22 PHP
PHPstorm激活码2020年5月13日亲测有效
Sep 17 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中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
php定时执行任务设置详解
2015/02/06 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
javascript jQuery插件练习
2008/12/24 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
使用原生javascript创建通用表单验证——更锋利的使用dom对象
2011/09/13 Javascript
初始Nodejs
2014/11/08 NodeJs
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
2016/09/14 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
[01:19:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第二局
2016/03/05 DOTA
介绍Python的@property装饰器的用法
2015/04/28 Python
Python的时间模块datetime详解
2017/04/17 Python
python的exec、eval使用分析
2017/12/11 Python
python机器学习之神经网络(一)
2017/12/20 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
饲料采购员岗位职责
2013/12/19 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
导航工程专业自荐信
2014/09/02 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python
Django migrate报错的解决方案
2021/05/20 Python
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang