tp5框架子查询,嵌套查询语句应用
程序员文章站
2022-06-30 12:22:44
1. 可用select(fales); 这样只生成sql语句,不执行$subQuery = Db::name('project_comment') ->field('Max(projectCommentId) AS projectCommentId,projectId') ->group('projectId') ->select(false);生成的$subQuery 打印如下:SELECT Max....
1. 可用select(fales); 这样只生成sql语句,不执行
$subQuery = Db::name('project_comment')
->field('Max(projectCommentId) AS projectCommentId,projectId')
->group('projectId')
->select(false);
生成的$subQuery 打印如下:
SELECT Max(projectCommentId) AS projectCommentId,projectId FROM `wst_project_comment` GROUP BY `projectId`
2.用buildSql() ,用这个生成的语句会被自动加上()来区分。强烈建议。
$subQuery = Db::name('project_comment')
->field('Max(projectCommentId) AS projectCommentId,projectId')
->group('projectId')
->buildSql();
生成的$subQuery 打印如下:
( SELECT Max(projectCommentId) AS projectCommentId,projectId FROM `wst_project_comment` GROUP BY `projectId` )
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
-------------------------------------------------------------------------------------------------------------------------
然后用上面2的结果,关联下面的语句。就可以得到嵌套查询,子查询结果 (注意:关联时设别名的空格不要太多,容易报错)
$subQuery2 = Db::table($subQuery.' tt')
->join( 'project_comment cc ','tt.projectCommentId = cc.projectCommentId','inner')
->field('cc.userType,cc.content,cc.createTime,cc.image')
->select();
用2是因为他生成的语句带有();可以不用再加。
本文地址:https://blog.csdn.net/aldsong123/article/details/107638451