如何操作tp5.1框架数据库子查询

  介绍

本篇内容主要讲解”如何操作tp5.1框架数据库子查询”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习”如何操作tp5.1框架数据库子查询”吧!

首先构造子查询SQL,可以使用下面三种的方式来构建子查询。

使用fetchSql方法

fetchSql方法表示不进行查询而只是返回构建的SQL语句,并且不仅仅支持<代码>选择> subQuery 美元;=,Db:表(& # 39;think_user& # 39;)   ,→字段(& # 39;id、名称# 39;)   ,→地方(& # 39;id # 39;,, & # 39;祝辞& # 39;,,10)   ,→fetchSql(真正的)   ,→选择();

生成的子查询结果为:

SELECT “id”,“名字”,得到“think_user”, WHERE “id”,祝辞,10

使用buildSql构造子查询

subQuery 美元;=,Db:表(& # 39;think_user& # 39;)   ,→字段(& # 39;id、名称# 39;)   ,→地方(& # 39;id # 39;,, & # 39;祝辞& # 39;,,10)   ,→buildSql ();

生成的子查询结果为:

(, SELECT “id”,“名字”,得到“think_user”, WHERE “id”,祝辞,10,)

调用buildSql方法后不会进行实际的查询操作,而只是生成该次查询的sql语句(为了避免混淆,会在sql两边加上括号),然后我们直接在后续的查询中直接调用。

然后使用子查询构造新的查询:

Db::表(subQuery 美元;只& # 39;,一个# 39;)   ,→地方(& # 39;a.name& # 39;,, & # 39;像# 39;,,& # 39;thinkphp& # 39;)   ,→订单(& # 39;id # 39;,, & # 39; desc # 39;)   ,→选择();

生成的SQL语句为:

SELECT  *,得到(,   ,SELECT “id”,“名字”,得到“think_user”, WHERE “id”,祝辞,10,),a    WHERE    ,a.name  LIKE  & # 39; thinkphp& # 39;,   ORDER  BY    “id”的大敌;   desc

使用闭包构造子查询

<代码>/不在和<代码>存在/不存在之类的查询可以直接使用闭包作为子查询,例如:

Db::表(& # 39;think_user& # 39;)   ,→地方(& # 39;id # 39;,, & # 39;上# 39;,,function (查询),{   美元才能查询→表(& # 39;think_profile& # 39;)→地方(& # 39;状态# 39;,,1)→字段(& # 39;id # 39;);   ,})   ,→选择();

生成的SQL语句是

SELECT  *,得到“think_user”,   WHERE “id”,(拷贝,SELECT “id”,得到“think_profile”, WHERE “地位”,=,1,) Db::表(& # 39;think_user& # 39;)   美元,→whereExists (function (查询),{   美元才能查询→表(& # 39;think_profile& # 39;)→地方(& # 39;状态# 39;,,1);   ,})→找到();

生成的SQL语句为

SELECT  *,得到“think_user”,   WHERE  EXISTS  (, SELECT  *,得到“think_profile”, WHERE “地位”,=,1,)

到此,相信大家对“如何操作tp5.1框架数据库子查询”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

如何操作tp5.1框架数据库子查询