码迷,mamicode.com
首页 > 数据库 > 详细

mysql概要(四)order by,group 的特点,子查询

时间:2016-01-14 23:44:55      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

1.order by 默认按升序排列(asc/desc),多字段排序 order by 字段 排序方式,字段2 排序方式,..;在分组排序中,排序是对分组后的结局进行排序,而不是在组中进行排序。

2.limit 在语句最好,截取记录的条数。一般和order by 配合使用

   limit[offset][N]

  offset: 偏移量   N:条数; 如limit(2,2),即从第三记录开始取两条记录。当一个参数时:limit 2,即从第一条记录开始取2条

3关于分组和聚合函数的一个问题,当分组时会从库中取组第一次出现时对应数据作为组数据,而使用聚合函数时候,聚合函数参数对应的列值和该组并不是对应的。只是组合一起      如:以班级进行分组,获取成绩最好的学生,select name ,max(score) from stu group by bianji; 这样最大成绩对应的学生和名字对应学生并非是对应的。

   3.1.如果你想在学校学生表中获取班级成绩最好的学生信息,如果想使用简单分组是不行,上面已经说明,并且你还不不能保证,会不会有多个相同成绩的存在。

            方法一:先使用分组查询出班级和最大成绩的结果作为新表,再和原表进行联合查询出所对应的学生信息。

             方法二:如果是最好成绩只有一个话的特列,倒是可以先按班级和成绩排序结果集再进行分组(利用了分组获取第一次出现的规则)。类似获取商品中每类物品的最高价                            格的物品:

                  技术分享

4子查询 where from exists

技术分享

   where 子查询:聚合函数可以直接用差点以为只能在group中使用了,但是不能和别的字段一起使用

技术分享

使用不同的子查询查出栏目下最新商品(只是id最大的那个为最新)

where

技术分享

from

技术分享

exists:查询出有商品的栏目:可以理解成外查询中每条记录,代入到内查询中,如果内查询有结果,就表示外查询的当前记录满足条件。

技术分享

 

mysql概要(四)order by,group 的特点,子查询

标签:

原文地址:http://www.cnblogs.com/straybirds/p/5130852.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!