介绍
本篇内容主要讲解”如何操作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框架数据库子查询”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!