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();