当前位置:首页 > Web开发 > 正文

关联预载入、关联统计

2024-03-31 Web开发

标签:

ThinkPHP关联预载入

  预载入的作用是减少执行SQL语句,进而提升程序的性能。

public function join(){ //用于监听SQL Db::listen(function ($sql, $time, $explain) { // 记录SQL echo $sql . ‘ [‘ . $time . ‘s]<br>‘; // 查看性能分析结果 //dump($explain); }); //$brand = Brand::all([3,4]);//未预载入 程序执行了5句SQL语句 $brand = Brand::with(‘goods‘)->select([3,4]);//预载入后 程序执行了4句SQL语句 foreach($brand as $b){ foreach($b->goods as $good){ echo $good->goods_name.":".$good->price."元<br>"; } } }

ThinkPHP关联统计

    关联统计只能用在一对多和一对多上,一对一的话还有上面好统计的。。。关联统计有相关的统计函数,除了whitCount()函数以外其他的统计函数都需要指定字段!!!

统计商品对应的数量

public function join(){ $brand = Brand::withCount(‘goods‘)->select([3,4]); foreach($brand as $b){ //“方法名+_count”为系统自动生成的自动用于存储统计的值,也可自定义 echo "品牌:"$b->brand_name."有"$b->goods_count."个商品<br>": } }

统计商品中的最大值withMax()

public function join(){ $brand = Brand::withMax(‘good‘,‘price‘)->select(); foreach($brand as $value){ echo $value->brand_name"的品牌中最贵的商品价格为:".$value->goods_max; } }

其它的统计方法

其它的统计方法有一下几种,,其使用方法与上面类似

关联统计的方法   描述  
withSum   求和  
withAvg   求平均值  
withMax   求最大值  
withMin   求最小值  

学习ThinkPHP的第21天---关联预载入、关联统计

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/42079.html