本文实例讲述了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程序设计有所帮助。

tp5讲一个值传到另外一个控制里_tp5.1 框架join方法用法实例分析相关推荐

  1. tp5 日期范围查询_tp5(thinkPHP5框架)时间查询操作实例分析,tp5thinkphp5

    tp5(thinkPHP5框架)时间查询操作实例分析,tp5thinkphp5 本文实例讲述了tp5(thinkPHP5框架)时间查询操作.分享给大家供大家参考,具体如下: 在项目中 可能会遇到 跨月 ...

  2. tp5 日期范围查询_tp5(thinkPHP5框架)时间查询操作实例分析

    本文实例讲述了tp5(thinkPHP5框架)时间查询操作.分享给大家供大家参考,具体如下: 在项目中 可能会遇到 跨月份进行查询 比如在 当输入201809 会获取当月的开始时间$start_mon ...

  3. tp5讲一个值传到另外一个控制里_统计起源 第四讲:黑暗中诞生的天才——自由度与标准差...

    费歇尔小时候有很严重的视力损伤,因此医生禁止他晚上在灯光下阅读.即使后来上学时,他的数学导师也在黑暗中教他数学,黑暗使人强大,长期在黑暗中脑补使得费歇尔形成了强大的几何能力.这也是为什么费歇尔可以很轻 ...

  4. c语言把一个数组赋值给另一个数组_如何把一个固定数组的值传递给另外一个数组...

    大家好,今日我们继续讲解VBA数组与字典解决方案,今日讲解的是第34讲:数组的传递.在应用数组的时候,我们往往需要要把数组的值由一个数组传递给另外一个数组,就如同变量的传递一样: A=B '把B值赋给 ...

  5. php数组的值传递给另一个数组,如何把一个固定数组的值传递给另外一个数组

    大家好,今日我们继续讲解VBA数组与字典解决方案,今日讲解的是第34讲:数组的传递.在应用数组的时候,我们往往需要要把数组的值由一个数组传递给另外一个数组,就如同变量的传递一样: A=B '把B值赋给 ...

  6. 如何使用一个单片机的IO口控制两个LED?

    简 介: 本文介绍了一种使用单个IO口独立控制两个LED点亮的方案.并对于不同颜色的LED和不同工作电压下的MCU进行了讨论.给出了在不同的颜色组合.工作电压的情况下不同的驱动方案. 关键词: IO, ...

  7. java 模拟电梯_请使用的Java的多线程知识来编写一个程序,实现一个简单的摩天大楼的电梯模型程序是以一座摩天大楼的多个电梯为背景,用线程、流程控制、随机函数等知识来模拟它。2、电梯的描述:...

    请使用的Java的多线程知识来编写一个程序,实现一个简单的摩天大楼的电梯模型 程序是以一座摩天大楼的多个电梯为背景,用线程.流程控制.随机函数等知识来模拟它. 2. 电梯的描述: 电梯是日常生活中经常 ...

  8. 一个html写的app首页,如何快速开发一个简单好看的APP控制页面

    原标题:如何快速开发一个简单好看的APP控制页面 导读 机智云开源框架为了让开发者快速开发APP,已将用户登录,设备发现,设备配网等功能做成了各个标准模块,仅保留控制页面让开发者自行开发设计,节省了开 ...

  9. 如何写一个树莓派的驱动来控制GPIO LED

    一直以来,物联网开发者面对新的硬件都是一件头痛的事情.有些时候明明有现成的驱动,我们却没法直接利用.公司的PM/领导一句话下来,整套系统就要从新来,说明书一看就是一天,重复的软硬联调,日复一日的造轮子 ...

最新文章

  1. tabcontainer控件太长_asp.net AjaxControlToolKit--TabContainer控件的介绍
  2. 抢领英饭碗?Facebook测试简历功能
  3. 微信小程序image组件开发程序以及相关图片问题参考资料汇总
  4. python输入输出有问题_使用pySerial从Python获取输入/输出错误
  5. WebRTC / Jitsi / 架构
  6. 对抗训练硬核分析:对抗样本与模型参数的关系
  7. 初学 Delphi 嵌入汇编[26] - 大小写字母转换
  8. jqgrid学习(2)搜索
  9. html标签强制转换位置,王老师html零基础学习笔记第4课——样式初始化+类型转化...
  10. ###《Effective STL》--Chapter2
  11. 计算机网络( 二十二)-数据链路层(补充)
  12. 北京理工大学软件工程复试之路
  13. 通俗地讲一下Web是什么意思。
  14. B2B2C 商城系统 WSTMart_v2.0.6_180726程序发布
  15. 水杨酸-FITC | salicylic acid-FITC|荧光素标记水杨酸
  16. <<和>>运算符的用法
  17. 计算机毕业设计 SSM+Vue前台点菜订餐平台系统 餐饮点餐订单管理系统 外卖点餐团购平台管理系统Java Vue MySQL数据库 远程调试 代码讲解
  18. java学习笔记day09 final、多态、抽象类、接口
  19. 题外话之怎么脱离旱鸭子
  20. 围棋棋盘怎么编程python_python实现围棋ai

热门文章

  1. Centos7搭建sftp服务器
  2. Suricata配置文件说明1
  3. NET Core微服务之路:基于Ocelot的API网关实现--http/https协议篇
  4. phpcms模板语法自总结例子
  5. ubuntu下终端锁屏设置
  6. 10303 数字三角
  7. 【python爬虫】对喜马拉雅上一个专辑的音频进行爬取并保存到本地
  8. 2021-7-12 js解析json时取出数据为undefined
  9. 验证视图状态 MAC 失败,配置machineKey
  10. Mac下iTerm2的安装与配置