网站首页 > 编程文章 正文
为了让初学者更容易理解,本文写的比较详细,所以如果你已是技术大拿,请直接绕过,以免浪费你的宝贵时间,谢谢。
这几天接到好多个网友的问题,都是关于ThinkPHP3.2框架中怎样使用多表联合查询,今天我来做一个统一的解答。
仔细看过文档的网友可能有注意到,在ThinkPHP3.2中有一个 table 方法,用官方的话来说,table 方法是属于模型类的连贯操作方法之一,主要用于指定操作的数据表,通常使用 table 方法是为了切换操作的数据表和对多表进行操作。
我们举个例子说明,这样更好理解,假如我们有两张表,一个是文章表(article),一个是类别表(category),如下图:
文章表 article
类别表 category
其中文章表(article)的 category 字段对应的是类别表(category)的 id ,也就是说,假如文章表(article)中有一条记录,这条记录中 category 的值为 1 的话,那么就读取出来的类别名就是类别表(category)中 id 为 1 的 title 的值,如下图:
文章表 article
类别表 cetegory
从上面的记录中可以看到,如果我们不做关联查询,而是直接输出这条记录的话,那么它显示的结果是这样的:
查询语句:
$list = M('Article')->find();
标题:怎么样才能学好前端开发
类别:1
内容:这里是怎么样才能学好前端开发的内容
那么很显然,类别显然不是我们想要的结果,因为我们是要让它关联类别表,把对应类别表中 id 为 1 的类别名显示出来,那么这时候我们可以用 table 方法进行关联查询:
查询语句:
$list = M('Article')->table('article as a,category as c')->where('a.category = c.id')->field('a.id as id,c.title as category,a.title as title,a.content as content')->find();
上面这个查询语句的意思就是说:用 table 方法给 article 和 category 起个别名,article 的别名为 a,category 的别名为 c,接着是 where 的查询条件是 a 表中的 category 等于 c 表的 id,然后因为这两个表中都有 title 这个字段,所以这里再用 field 方法做字段映射,a 表的 id 字段映射为 id,c 表的 title 字段映射为 category,a 表的 title 字段映射为 title,a 表的 content 字段映射为 content,那么我们在模板中输出的结果就是:
文章id:1 (字段:id)
标题:怎么样才能学好前端开发(字段:title)
类别:前端资讯(字段:category)
内容:这里是怎么样才能学好前端开发的内容(字段:content)
这样就实现了多表关联查询了,当然,还可以用原生的sql语言查询,也可以用 join 方法查询,大家可以去看一下ThinkPHP的开发手册,这里就只介绍 table 方法。
谢谢你的阅读,如果你有更好的方法或在应用过程中遇到问题可以在评论区提问或者直接私信我,我会定期回复,码农刘小桥与你一起学习,共同进步。
猜你喜欢
- 2024-10-10 Lin-CMS 是经过大量项目实践所提炼出的一套内容管理系统框架
- 2024-10-10 在VSCode中调试ThinkPHP8.0,开启调试模式
- 2024-10-10 cmpay聚合支付系统(聚合支付产品介绍)
- 2024-10-10 thinkphp6开启调试与配置文件003(thinkphp6视频教程)
- 2024-10-10 ThinkPhp6从安装到配置全解(thinkphp 5.0.24 rce)
- 2024-10-10 ThinkPHP5.*远程代码执行高危漏洞手工与升级修复解决方法
- 2024-10-10 ThinkPHP v5.1.x POP 链分析(thinkphp pdo)
- 2024-10-10 ThinkPHP6.0如何开启Session(thinkphp5 session)
- 2024-10-10 thinkphp6学习笔记之安装(thinkphp6下载)
- 2024-10-10 thinkphp怎么开发小程序(thinkphp开发微信小程序)
你 发表评论:
欢迎- 最近发表
-
- 数据不丢失 从Windows 11的DEV版降级到正式版
- Win11学院:在Windows11 25905预览版中如何启用Dev Drive
- DEVC++的卸载(devcon卸载驱动)
- win11 dev 开发版 升级攻略完整版
- 最新Windows11+Windows10系统各种版本永久激活密钥以及下载链接
- 想学Python,却还记不住语法?神仙书籍 python背记手册双手奉上
- 如何用Python语言开发大型服务器程序
- 30天Python 入门到精通(python零基础入门到精通)
- 入门扫盲:9本自学Python PDF书籍,让你避免踩坑,轻松变大神!
- 学好Python需要看的4本书推荐(学python好用的书)
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)