首页 > 数据库 > MySQL > 正文:Mysql的distinct语句和group by,order by

Mysql的distinct语句和group by,order by

web学习吧 2007-09-19 来源: 收藏本文
共4页: 上一页 1 [2] [3] [4] 下一页

  最近,在做一个项目的时候,发现得出的数据于预料的相差很多,仔细的研究了一下,发现问题出在 distinct语句和groupy by,order by
  首先,distinct语句,获得非重复的(唯一)行记.
  grouy by是分组,order by 是排序。
 
  直接看我的例子。

  假定我有一个表f_job,有字段:
 

select job_id, com_id,job_time from f_job  order by job_time desc limit 10;  \T e:\web\web\PHP\fhr\tee.txt
+--------+--------+---------------------+
 job_id  com_id  job_time           
+--------+--------+---------------------+
   5060    2205  2006-09-29 16:30:11 
   4707   19084  2006-09-29 16:27:55 
   4708   19084  2006-09-29 16:27:55 
   4709   19084  2006-09-29 16:27:55 
   4710   19084  2006-09-29 16:27:55 
   4711   19084  2006-09-29 16:27:55 
   4859   19084  2006-09-29 16:27:55 
   4918   19084  2006-09-29 16:27:55 
   5059    2205  2006-09-29 16:27:22 
   4078    2715  2006-09-29 16:18:36 
+--------+--------+---------------------+
10 rows in set (0.03 sec)


还有其他字段,不可能影响结果.此处不列出。

job_id是primary key。 com_id是外键,我需要按照时间来排序。所以必须使用order by!

   你看到了com_id在得出的结果中不唯一,对,我需要的结果就是提取com_id唯一的最近10条com_id的记录,而已。
 
   我就以以前的MSSQL的经验写如下的语句执行:

 
mysql> select distinct( com_id) from f_job  order by job_time desc limit 10;  \T e:\web\web\php\fhr\tee.txt
+--------+
 com_id
+--------+
  19084 
   2197 
  19917 
  19580 
  19520 
  19664 
  19397 
  19900 
   1176 
  19449 
+--------+

共4页: 上一页 1 [2] [3] [4] 下一页
热点教程
实用信息推荐
网站地图 - 最新教程 - RSS订阅 - 版权所有 - 广告服务 - 友情连接 - 联系我们