当前位置: 移动技术网 > IT编程>数据库>MSSQL > tp5框架子查询,嵌套查询语句应用

tp5框架子查询,嵌套查询语句应用

2020年07月30日  | 移动技术网IT编程  | 我要评论
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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网