使用buildSql()
$subQuery = Db::table('dbname')->buildSql();
$list = Db::table($subQuery . ' a')
原sql语句
SELECT * FROM ( SELECT count(*) count,ra.id,c.name FROM `r_answer` `ra` LEFT JOIN `user` `u` ON `u`.`id`=`ra`.`user_id` LEFT JOIN `category` `c` ON `c`.`id`=`ra`.`school_id` GROUP BY `u`.`teacher` LIMIT 1000000 ) a GROUP BY `user_id`
ThinkPHP查询
$subQuery = Db::table('r_answer')
->alias('ra')
->field("count(*) count,ra.id,c.name")
->join("user u","u.id=ra.user_id",'left')
->join("category c","c.id=ra.school_id",'left')
->limit(1000000)
->group('u.teacher')
->buildSql();
$list = Db::table($subQuery . ' a')
->group('user_id')
->select();
文章讲述了如何在ThinkPHP框架中利用Db类的buildSql方法来构建并执行复杂的SQL查询,包括别名设置、字段选择、JOIN操作、分组以及限制记录数。示例展示了如何从r_answer表开始,通过LEFTJOIN连接user和category表,然后进行分组和限制,最后生成嵌套查询的SQL语句。
1251

被折叠的 条评论
为什么被折叠?



