count 与 group by

单表查询时:

结果:7条数据

结果:只显示一条数据

 -----------------------------------------------------------------------------------------------------------------------------

再对比多表查询:

加上count函数之后:

以上和单表查询一样,被查询数据视为一组。

用 group by 分组函数,下面是以id 分组,每一个id是一组,一共分四组

结果:4条数据

加上count函数之后:

结果:4条数据

结论: count 函数  查询结果集中每组数据个数,如果结果集中只有一组,则查询的结果是一条数据!!

使用场景:与 group by 分组函数一起使用!!!


$list = Db::name('shop_collection')
->alias('a')
->where($where)
->leftjoin('bojie_shop_goods b', 'a.goods_id = b.id')
->leftjoin('bojie_shop_goods_class c', 'a.class_id = c.id')
->leftjoin('bojie_shop_goods_order_pay d', 'a.goods_id = d.goods_id')
->leftjoin('bojie_shop_list e', 'b.shop_id = e.id')
->field('a.url, b.title, b.img, b.price, c.class_name, count(d.id) count, e.shop_name')
->group('a.id')//有group时被分组,没有时只能查询一条数据
->page($page['pageNum'],$page['numPerPage'])
->order('a.id', 'desc')
->select();
原文地址:https://www.cnblogs.com/wangyuyanhello/p/8434764.html