thinkphp5中join的用法是什么
发布时间 - 2022-04-25 00:00:00 点击率:次在thinkphp5中,join用于根据两个或者多个表中列之间的关系,从这些表中查询数据,是连贯操作方法之一,返回的结果是一个模型对象,语法为“join ( 要关联的表名以及别名 [ 关联条件 [ 关联类型]] )”。
本文操作环境:Windows10系统、ThinkPHP5版、Dell G3电脑。
thinkphp5中join的用法是什么
JOIN方法也是连贯操作方法之一,用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
说明
object join ( mixed join [, mixed $condition = null [, string $type = 'INNER']] )
参数
join:要关联的(完整)表名以及别名,支持三种写法:
写法1:[ '完整表名或者子查询'=>'别名' ]
写法2:'完整表名 别名'
写法3:'不带数据表前缀的表名'
condition:关联条件。可以为字符串或数组, 为数组时每一个元素都是一个关联条件。
type:关联类型。可以为:INNER、LEFT、RIGHT、FULL,不区分大小写,默认为INNER。
返回值:模型对象
join通常有下面几种类型,不同类型的join操作会影响返回的数据结果。
INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
示例如下:
Db::table('think_artist')
->alias('a')
->join('think_work w','a.id = w.artist_id')
->join('think_card c','a.card_id = c.id')
->select();Db::table('think_artist')
->alias('a')
->join('__WORK__ w','a.id = w.artist_id')
->join('__CARD__ c','a.card_id = c.id')
->select();$join = [
['think_work w','a.id=w.artist_id'],
['think_card c','a.card_id=c.id'],
];
Db::table('think_user')->alias('a')->join($join)->select();以上三种写法的效果一样,__WORK__和 __CARD__在最终解析的时候会转换为 think_work和 think_card。注意:'_表名_'这种方式中间的表名需要用大写
如果不想使用别名,后面的条件就要使用表全名,可以使用下面这种方式
Db::table('think_user')->join('__WORK__','__ARTIST__.id = __WORK__.artist_id')->select();默认采用INNER JOIN 方式,如果需要用其他的JOIN方式,可以改成
Db::table('think_user')->alias('a')->join('word w','a.id = w.artist_id','RIGHT')->select();表名也可以是一个子查询
$subsql = Db::table('think_work')->where(['statu
s'=>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();因buildSql返回的语句带有(),所以这里不需要在两端再加上()。
推荐学习:《PHP视频教程》
# thinkphp
# php
# 字符串
# 对象
# 是一个
# 多个
# 三种
# 需要用
# 操作方法
# 都是
# 中有
# 其他的
# 要在
# 再加上
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
如何将凡科建站内容保存为本地文件?
Java垃圾回收器的方法和原理总结
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
Android 常见的图片加载框架详细介绍
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
黑客如何通过漏洞一步步攻陷网站服务器?
如何自定义建站之星网站的导航菜单样式?
Laravel用户密码怎么加密_Laravel Hash门面使用教程
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
C语言设计一个闪闪的圣诞树
Android okhttputils现在进度显示实例代码
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Laravel如何使用Livewire构建动态组件?(入门代码)
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
如何快速生成凡客建站的专业级图册?
Java类加载基本过程详细介绍
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
,怎么在广州志愿者网站注册?
香港服务器WordPress建站指南:SEO优化与高效部署策略
高端建站三要素:定制模板、企业官网与响应式设计优化
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
手机软键盘弹出时影响布局的解决方法
如何在阿里云虚拟服务器快速搭建网站?
米侠浏览器网页背景异常怎么办 米侠显示修复
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
香港服务器网站卡顿?如何解决网络延迟与负载问题?
如何在Windows虚拟主机上快速搭建网站?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
详解Huffman编码算法之Java实现
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
魔方云NAT建站如何实现端口转发?
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
制作公司内部网站有哪些,内网如何建网站?
php结合redis实现高并发下的抢购、秒杀功能的实例
JavaScript模板引擎Template.js使用详解


s'=>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();