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获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
Sep 23 PHP
探讨:如何通过stats命令分析Memcached的内部状态
Jun 14 PHP
ThinkPHP独立分组使用的注意事项
Nov 25 PHP
php+ajax实时输入自动搜索匹配的方法
Dec 26 PHP
php递归法读取目录及文件的方法
Jan 30 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 PHP
PHP弱类型的安全问题详细总结
Sep 25 PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 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获取服务器信息的实现代码
2013/02/04 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
PHP7内核之Reference详解
2019/03/14 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
运算符&&的三个不同层次
2013/04/07 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
javaScript封装的各种写法
2017/08/14 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
[01:34]2014DOTA2展望TI 剑指西雅图VG战队专访
2014/06/30 DOTA
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
python检测是文件还是目录的方法
2015/07/03 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
python3.5绘制随机漫步图
2018/08/27 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
个人简历的自荐信
2013/10/23 职场文书
珠宝店促销方案
2014/03/21 职场文书
实习协议书范本
2014/04/22 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
优秀教师事迹材料
2014/12/15 职场文书
电影圆明园观后感
2015/06/03 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
Python如何让字典保持有序排列
2022/04/29 Python