ThinkPHP查询方式
2017-04-18 11:46
399 查看
1.子查询:buildSql()
参考http://document.thinkphp.cn/manual_3_2.html#sub_query
buildSql()方法 不进行实际的查询操作,只生成该次的SQL语句
例如:有三张表:
物资表material(id,名称,编号)
仓库表warehouse(id,名称)
库存表stock(id,仓库id,物资id,库存数量total)
查询:查询库存表,并且根据仓库id和物资code分组,查询总共有多少组
实现上述要求(分组的组数)也可以不用子查询,可以用select查询出分组后的所有记录,记录条数就是分组的组数
参考http://document.thinkphp.cn/manual_3_2.html#sub_query
buildSql()方法 不进行实际的查询操作,只生成该次的SQL语句
例如:有三张表:
物资表material(id,名称,编号)
仓库表warehouse(id,名称)
库存表stock(id,仓库id,物资id,库存数量total)
查询:查询库存表,并且根据仓库id和物资code分组,查询总共有多少组
<? php //1.实例化类 $model = M('Stock'); //2.查询字段 $field = "stock.id as id,warehouse.name as warehousename, material.code as code,material.title "; //3.子查询 $subQuery= $model->alias('stock') ->join("LEFT JOIN __WAREHOUSE__ warehouse ON stock.warehouseid=warehouse.id") ->join("LEFT JOIN __MATERIAL__ material ON stock.materialid = material.id") ->field($field) ->group("warehouse.id,material.code")->buildSql(); //echo($subQuery); //输出sql 调试用 //4.外层查询 $totalarray = $model->alias('stock') ->query("select count(1) as total from". $subQuery."as childsql"); //5.符合条件的记录总数 $total=$totalarray[0]["total"]; ?>
实现上述要求(分组的组数)也可以不用子查询,可以用select查询出分组后的所有记录,记录条数就是分组的组数
相关文章推荐
- ThinkPHP 3.1.2 查询方式
- ThinkPHP 3.1.2 查询方式的一般使用1
- Thinkphp中的查询方式
- ThinkPHP 3.1.2 查询方式的一般使用2
- ThinkPHP学习笔记(九)Thinkphp中的查询方式大综合
- 关于thinkphp里面的查询方式
- thinkPHP查询方式小结
- thinkPHP查询方式小结
- ThinkPHP 查询数据的方式
- thinkphp的CURD和查询方式介绍
- 【php】thinkphp以post方式查询时分页失效的解决方法
- ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
- thinkPHP查询方式的使用
- ThinkPHP 3.1.2 查询方式的一般使用1
- ThinkPHP 3.1.2 查询方式 -4
- Thinkphp笔记---查询方式
- ThinkPhp查询数据库的几种方式
- ThinkPHP 3.1.2 查询方式的一般使用2
- thinkphp表达式方式,模糊,区间,多形式查询