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天---关联预载入、关联统计的更多相关文章

  1. 学习ThinkPHP的第20天--MySQL事务操作、查询事件、一对一关联

    之所以从20天才开始写随笔记是因为之前没搞自己的博客 从20天开始记录我在ThinkPHP中的点点滴滴 1.MySQL事务操作 /**事务操作*/ //startTrans启动事务.rollback回 ...

  2. 学习ThinkPHP笔记

    学习ThinkPHP笔记 TP的模块化设计 名称 描述 应用 基于同一个入口文件访问的项目我们称之为一个应用. 模块 一个应用下面可以包含多个模块,每个模块在应用目录下面都是一个独立的子目录. 控制器 ...

  3. java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制

    ClassLoader的工作机制 java应用环境中不同的class分别由不同的ClassLoader负责加载. 一个jvm中默认的classloader有Bootstrap ClassLoader. ...

  4. Hibernate多对多单向关联和双向关联 --Hibernate框架

    Hibernate关联关系中相对比较特殊的就是多对多关联,多对多关联与一对一关联和一对多关联不同,多对多关联需要另外一张映射表用于保存多对多映射信息.本例介绍多对多单向关联和双向关联.单向关联 :指具 ...

  5. ThinkPHP5——模型关联(一对多关联)

    关联定义 一对多关联的情况也比较常见,使用hasMany方法定义,参数包括: hasMany('关联模型名','外键名','主键名',['模型别名定义']); 例如租客表和宿舍表,一个宿舍有多个租客, ...

  6. 如何做LR自动关联和手动关联?

    一.什么时候需要关联   1.关联的含义        关联的含义A(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容 ...

  7. 预载入和JavaScript Image()对象

    预载入和JavaScript Image()对象 很多high-res图像真的可以使 Web 站点更加整洁.但是它们也会使站点的访问速度变慢——图像是文件,文件使用带宽,带宽直接与等待时间相关.是该了 ...

  8. LoadRunner脚本参数化之自动关联和手动关联

    一.关联的意义  1.关联的含义 关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,以变量的 ...

  9. SQL中的关联更新和关联删除

    在SQL中,经常用到关联查询,比如select a.* from A a inner join B b on a.PId=b.FId where 条件,SQL中也支持类似的关联更新和关联删除. 关联更 ...

随机推荐

  1. Mac中的Python安装selenium,结合chrom及chromdriver使用

    一.安装selenium 1.在终端通过命令安装 pip3 install -U selenium 二.准备环境 1.在电脑中安装谷歌浏览器chrom,和下载估计浏览器驱动chromdriver,以下 ...

  2. 使用requests实现人人网登录,并做cookie维持

    import requests import re,time s = requests.Session() def doLogin(): login_url = 'http://www.renren. ...

  3. [LINQ2Dapper]最完整Dapper To Linq框架(三)---实体类关系映射

    此特性需要安装Kogel.Dapper.Mssql或者Oracle 3.06及以上版本,实体类层需要安装Kogel.Dapper.Extension 3.06及以上版本 目录 [LINQ2Dapper ...

  4. PHP str_replace的用法

    PHP str_replace的用法 1 替换单个字符<pre><?phpecho str_replace("world","Shanghai" ...

  5. VueRouter爬坑第一篇-简单实践

    VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建. 项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境. ...

  6. JVM 运行参数 & 代码监控

    1.Java代码监控 JDK提供java.lang.management包, 其实就是基于JMX技术规范,提供一套完整的MBean,动态获取JVM的运行时数据,达到监控JVM性能的目的. packag ...

  7. C++中对C的扩展学习新增语法——引用

    引用 引用的好处: 1.引用的好处 C++使用结构体,不需要再使用 typedef. 2.值传递是将实参进行拷贝,赋值给形参,如果对象比较大,每次拷贝效率比较低,并且函数内部无法修改外部变量的值,能力 ...

  8. LeetCode Bash练习

    195. Tenth Line #!/bin/bash i= cat file.txt | while read line do #echo $line ] then echo $line fi le ...

  9. 【Stream—7】NetworkStream相关知识分享

    一.NetworkStream的作用 和先前的流有所不同,NetworkStream的特殊性可以在它的命名空间中得以了解(System.Net.Sockets),聪明的你马上就会反应过来:既然是在网络 ...

  10. 继上篇-jquery ajax提交 本篇用ajax提交的数据去数据库查询

    上篇讲到如何用jquery ajax提交数据至后台,后台接收并返回给ajax.https://www.cnblogs.com/tiezhuxiong/p/11943328.html 今天我们把数据传到 ...