当前位置:首页 > 编程技术 > php技术 > 正文内容

thinkphp使用join 关联查询和模型关联查询的区别

鱼湘肉丝1年前 (2022-12-06)php技术774

对于关联查询,我用的更多的都是 一对一  一对多  多对多的 关联查询 。

而他们都有一个很大的问题,当出现多表联查的时候写起来不太灵活,这确实是一个大问题,虽然说代码写起来很规范,

但有个问题就是代码量太多了 。  而 tinkphp 的join 查询是原生查询 

$archives = (new Archives())->alias('a')->with(['category'])->join($model->tablename.' x','a.id=x.id','left')->field('a.*,x.id as xid,'.$extField);

像这么一段join查询  对于小白是很难理解这到底是个什么意思

那么首先 我们先 分析一下

$archives = (new Archives())->alias('a')->with(['category']);

将这个

Archives

模型定义一个别名为A  并且关联查询 

category


紧接着我们继续观察

join($model->tablename.' x','a.id=x.id','left')

将 

$model->tablename

这个表  快速定义别名为 x  X前面加个空格是为了区分表名 和 别名 

'a.id=x.id','left'

a表也就是

Archives()

模型  A表的id = 

$model->tablename

x 表的 id 

->field('a.*,x.id as xid,'.$extField);

查询a表所有字段  并且将 x 表的id 重命名为 xid 防止ID重复 

对于join查询的记录到此为止  

本文链接:https://yun.ha.cn/post/20.html 转载需授权!

分享到:

扫描二维码推送至手机访问。

版权声明:本文由云蛤社区发布,如需转载请注明出处。

技术交流QQ群:657091037

部分文章和资源从互联网中收集,如有侵权 联系站长删除。

本文链接:https://yun.ha.cn/post/20.html

分享给朋友:
返回列表

没有更早的文章了...

下一篇:php写一个雪花算法案例

“thinkphp使用join 关联查询和模型关联查询的区别” 的相关文章

网站中记录爬虫最简单直观的方法

网站中记录爬虫最简单直观的方法

每次做网站的时候都会想着如何记录爬虫,可网上现成的轮子并没有提供现成的给你用,不信你可以查查看。那么没轮子怎么造轮子最快。一种方法就是搜集现成的UA添加进数据库里,然后再调用,这种方法应当是第一个能想到的法子,那么他实际上并不实用。因为爬虫的UA 和 IP 并不完全固定 或许又改了呢? 所...

php自动计算并转换流量单位(b kb mb gb tb转换)的方法

php自动计算并转换流量单位(b kb mb gb tb转换)的方法

   我们都知道系统的流量统计都是以字节单位进行存储,如果我们在做流量统计相关功能时,不可能直接将字节显示给用户,如果直接显示比特将会是很长一段数字,例如:1KB = 1024b1MB = 1048576b1GB = 1073741824b  由此可...

php通过时间戳自动计算 1分钟前,N小时前,N年前的例子

php通过时间戳自动计算 1分钟前,N小时前,N年前的例子

  最近刚好有一个php项目需求,需要用显示帖子的发布时间,时间显示格式要求是这种的:N分钟前,N小时前,N个月前,N年前;其实实现方法有很多种,我这里就用了最简单傻瓜式的方式来写。直接判断秒数来输出对应的时间,具体如下:1分钟 = 60秒1小时 = 3600秒一天(24小时) =&nbs...

对ThinkPHP模型查询出的结果数据集进行排序的方法

对ThinkPHP模型查询出的结果数据集进行排序的方法

   相信很多小伙伴也在用ThinkPHP进行项目开发,ThinkPHP的模型功能可以很方便的对数据库进行增删改查的操作,ThinkPHP的模型也自带了order()方法进行原生MySql排序查询。但是可能会有一些业务逻辑需要将查询的数据集进行二次处理以及排序等操作,今天给大家分...

php实现监听Redis缓存过期回调的方法

php实现监听Redis缓存过期回调的方法

Redis简介   Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis缓存过期Redis是可以设置一个Key的...

PHP实现腾讯云cos对象储存盲水印添加获取文档

PHP实现腾讯云cos对象储存盲水印添加获取文档

    盲水印功能基于腾讯云数据万象,是一种全新的水印模式。通过该功能,您可将水印图以不可见的形式添加到原图信息中,并且不会对原图质量产生太大影响。当发现图片被盗取后,您可对疑似被盗取的资源进行盲水印提取,验证图片归属。 通过该 A...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。