首页 » 网站推广 » thinkphp3php7技巧_PHP高手之路之ThinkPHP三

thinkphp3php7技巧_PHP高手之路之ThinkPHP三

访客 2024-11-09 0

扫一扫用手机浏览

文章目录 [+]

在ThinkPHP中,系统也是支持联表查询操作,但是可以归纳成两种办法:table方法、join方法。

1、table方法

thinkphp3php7技巧_PHP高手之路之ThinkPHP三

原生的语法中table方法的语法:select 表1.字段,表2.字段 from 表1 as 别名1,表名2 as 别名2 where 表1.字段 = 表2.字段;

thinkphp3php7技巧_PHP高手之路之ThinkPHP三
(图片来自网络侵删)

Where的语句含义:也便是通过where语法来进行两个表的关联操作。

案例:查询每小我员的全部信息,哀求利用table语法。

剖析:由于职员信息中,有一个字段“dept_id”,这个字段是部门表中的主键,以是此处该当读取出部门的名称。
以是哀求关联部门表。
关联的条件是职员表中的dept_id即是部门表中的id。

主表:sp_user 别名:t1

从表:sp_dept 别名:t2

原生的sql语句:select t1.,t2.name as deptname from sp_user as t1,sp_dept as t2 where t1.dept_id = t2.id;

在navicat中实行的结果:

将上述的代码,在ThinkPHP中实现查询的效果:

方法1:可以利用实行原生的sql语句进行实行

方法2:可以利用table方法实现

在ThinkPHP中一样平常不建议频繁的利用实行原生的sql语句方法实行sql,以是上述的方法还可以写成其余的一种形式:

$model -> table(‘表名1 [as 别名1],表名2 [as 别名2]…’); //table方法也是连贯操作中的一个赞助方法。
在利用table方法之后模型会自动关联上table方法中指定的数据表。

下面可以利用table方法改写之前的原生的sql:

实行结果中的sql:

2、join方法

在join语法中,上述圈出的用的比较多。

在原生的sql中,join的语法:select 表1.字段,表2.字段 from 表1 as 别名 [inner/left/right/full] join 表2 as 别名 on 表1.字段 = 表2.字段;

案例:查询部门的详细信息,列出每一条部门信息中的pid对应的部门名称。

解释:在往后的实际利用的时候,会碰着一种关联情形便是自己关联自己,自联查询。

主表:sp_dept 别名:t1

从表:sp_dept 别名:t2

条件:t1.pid = t2.id

原生的sql:select t1.,t2.name as deptname from sp_dept as t1 left join sp_dept as t2 on t1.pid = t2.id;

将上述的sql放到navicat中实行:

在ThinkPHP中去实行上述的代码:

Join联表语法:

$model -> join(‘联表办法 join 表名 [as 别名] on 表1.字段 = 表2.字段’); //join方法也是连贯操作的赞助方法之一,只有一个参数。

如果须要给当前模型关联的表起别名的话,则可以利用alias方法:

$model -> alias(‘别名’); //alias也是赞助方法之一

实行结果:

跟踪信息中的sql:

标签:

相关文章

今日头条算法引领个化信息时代的变革

信息爆炸时代已经到来。每个人都是信息的接收者和传播者。面对海量的信息,人们往往感到无所适从。为了解决这一问题,各大互联网公司纷纷推...

网站推广 2025-01-31 阅读1 评论0

今日头条算法信息推荐的秘密武器

信息爆炸的时代已经来临。人们每天都会接触到大量的信息,而如何从这些信息中筛选出有价值的内容,成为了亟待解决的问题。今日头条算法作为...

网站推广 2025-01-31 阅读1 评论0

今日头条算法精准推荐背后的技术奥秘

信息爆炸的时代已经来临。我们每天都要面对海量的信息,如何从这些信息中筛选出自己感兴趣的内容,成为了每个人都关心的问题。今日头条作为...

网站推广 2025-01-31 阅读1 评论0