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 相关文章推荐
第十节--抽象方法和抽象类
Nov 16 PHP
PHP 文件类型判断代码
Mar 13 PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
Apr 07 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
Jul 03 PHP
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 PHP
nginx+php-fpm配置文件的组织结构介绍
Nov 07 PHP
解析PHP缓存函数的使用说明
May 10 PHP
php环境套包 dedeampz 伪静态设置示例
Mar 26 PHP
php使用smtp发送支持附件的邮件示例
Apr 13 PHP
在Windows系统下使用PHP生成Word文档的教程
Jul 03 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 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中文件上传的安全问题
2006/10/09 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
SOSO地图JS画出标注和中心点以html形式运行
2013/08/09 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
详解React中setState回调函数
2018/06/14 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
Python实现把数字转换成中文
2015/06/29 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
对python中的argv和argc使用详解
2018/12/15 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
python使用列表的最佳方案
2020/08/12 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
个人作风剖析材料
2014/02/02 职场文书
岗位明星事迹材料
2014/05/18 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
死者家属慰问信
2015/03/24 职场文书
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL