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 相关文章推荐
一个域名查询的程序
Oct 09 PHP
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
PHP 实现多服务器共享 SESSION 数据
Aug 15 PHP
QueryPath PHP 中的jQuery
Apr 11 PHP
php设计模式 Prototype (原型模式)代码
Jun 26 PHP
3款值得推荐的微信开发开源框架
Oct 28 PHP
详解php设置session(过期、失效、有效期)
Nov 12 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
php 使用fopen函数创建、打开文件详解及实例代码
Sep 24 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
Sep 09 PHP
laravel ORM关联关系中的 with和whereHas用法
Oct 16 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
ThinkPHP数据操作方法总结
2015/09/28 PHP
php链式操作的实现方式分析
2019/08/12 PHP
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
使用selenium抓取淘宝的商品信息实例
2018/02/06 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
一篇不错的Python入门教程
2007/02/08 Python
浅谈Python中copy()方法的使用
2015/05/21 Python
python 2.6.6升级到python 2.7.x版本的方法
2016/10/09 Python
Python变量和数据类型详解
2017/02/15 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
SQL Server面试题
2013/04/04 面试题
新闻专业本科生的自我评价分享
2013/11/20 职场文书
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
css3 文字断裂效果
2022/04/22 HTML / CSS