admin 管理员组

文章数量: 887021

分组

1.你就记住当SELECT 后 既有 表结构本身的字段,又有需要使用聚合函数(COUNT(),SUM(),MAX(),MIN(),AVG()等)的字段,就要用到group 分组,查询的限定条件里有需要用聚合函数计算的字段时也需要用分组,group最后就是一个类型一条数据了
2.分组的概念:就是让经过计算的查询结果根据某一个或者多个字段分成一组一组(一行一行)的排列显示。
3.另外顺便介绍下,WHERE和HAVING的区别,WHERE作用于全表,而HAVING只作用于分组的组内。

4.group

$list   = Db::name('sum')->field('xx,count(*) as xx_total')->group('xx')->order('xx_total desc')->select();dump($list);



group以xx分组数据库中有几个不同的xx数组中就有几条数据
group一般和 COUNT(),SUM(),MAX(),MIN(),AVG()等)的字段连用

5.join多表连接
是为了一个数组中显示几个表中的内容
4.1两个表user表和test表

user表的Id和test表的uid是相同的,是公共的条件(join后面写的),每一个数组里面都有了phone1也就是user表的phone,join的用法就是连起来了
$res=Db::table('user')->alias('u')->join('test t','t.uid=u.Id')->where('u.Id',1)->field('u.phone as phone1,t.*')->select();
print_r($res);
Array
([0] => Array([phone1] => 123[Id] => 1[uid] => 1[phone] => 11[img] =>[nowTime] =>)[1] => Array([phone1] => 123[Id] => 2[uid] => 1[phone] => 1[img] =>[nowTime] =>)[2] => Array([phone1] => 123[Id] => 3[uid] => 1[phone] => 111[img] =>[nowTime] =>)[3] => Array([phone1] => 123[Id] => 4[uid] => 1[phone] => 1111[img] =>[nowTime] =>)[4] => Array([phone1] => 123[Id] => 5[uid] => 1[phone] => 11111[img] =>[nowTime] =>)[5] => Array([phone1] => 123[Id] => 6[uid] => 1[phone] => 1111[img] =>[nowTime] =>)[6] => Array([phone1] => 123[Id] => 7[uid] => 1[phone] => 14111[img] =>[nowTime] =>))

本文标签: 分组