取出一个表中最大值得整条记录
2011-12-02 13:44
288 查看
下面这种方式绝对不是用子查询查出来的。可能效率上不是非常高,但是却有它的精妙之处!
mysql> select * from a;
------------------------------------------------
------------------------------------------------
------------------------------------------------
不用子查询的方式查
mysql> select * from a a1 inner join a a2 on a1.is_number_one=a2.is_number_one and a1.source=a2.source where a1.is_number_one='1' and a1.source=101 group by a1.create_time having a1.create_time=max(a2.create_time);
----------------------------------------------------------------------------------------------+
----------------------------------------------------------------------------------------------+
----------------------------------------------------------------------------------------------+
mysql> select * from a;
------------------------------------------------
id | is_number_one | source | o1 | o2 | xxx | create_time |
1 | 1 | 101 | 1.01 | 1.02 | 5 | 15:59:01 |
2 | 0 | 102 | 1.02 | 1.02 | 3 | 15:59:01 |
3 | 0 | 103 | 1.02 | 1.02 | 3 | 15:59:01 |
4 | 1 | 101 | 1.04 | 1.02 | 5 | 15:59:25 |
5 | 1 | 110 | 1.02 | 1.05 | 5 | 15:59:25 |
不用子查询的方式查
mysql> select * from a a1 inner join a a2 on a1.is_number_one=a2.is_number_one and a1.source=a2.source where a1.is_number_one='1' and a1.source=101 group by a1.create_time having a1.create_time=max(a2.create_time);
----------------------------------------------------------------------------------------------+
id | is_number_one | source | o1 | o2 | xxx | create_time | id | is_number_one | source | o1 | o2 | xxx | create_time |
4 | 1 | 101 | 1.04 | 1.02 | 5 | 15:59:25 | 1 | 1 | 101 | 1.01 | 1.02 | 5 | 15:59:01 |
相关文章推荐
- 查询表中某一个字段的数字最大值的记录
- 一个值得记录的不成功的ST换头案例
- MySql按一个字段分组并且取另一个字段最大值的记录
- 数据库表中有重复记录,如何删除这些重复记录保留ID最大的一个信息
- MySQL根据某一个或者多个字段查找重复数据,并且保留某字段值最大的记录
- 编写一个通用的求三个元素中最大值得类模版并进行测试
- MySQL中取出一列中含有最大值的记录
- 随笔:设计一个栈结构,使得取出栈中最大值时间复杂度为O(1)
- GIT 版本控制软件的常用命令记录每次更新到仓库 现在我们手上已经有了一个真实项目的 Git 仓库,并从这个仓库中取出了所有文件的工作拷贝。接下来,对这些文件作些修改,在完成了一个阶段的目标和使用方法
- SSL 接收到一个超出最大准许长度的记录【ssl_error_rx_record_too_long】
- 用一条查询语句取出price的和最大的连续5条记录
- 传入一个integer数组,取出最大、最小值
- 编写一个程序,从标准输入中读取若干string对象并查找连续重复出现的单词。所谓连续重复出现的意思是:一个单词后面紧跟着这个单词本身。要求记录连续重复出现的最大次数以及对应的单词
- MySQL查询:查询一个表中类别字段中Max()最大值对应的记录
- SQL 取出UserID相同记录中的一条,并且取的是ID最大的。
- MySQL查询:查询一个表中类别字段中Max()最大值对应的记录
- 有n个连续的整数,这些正数有正有负. 请取出这段整数的一个子段,其和为所有字段中最大.
- 跟风记录一个知乎热门讨论-腾讯/阿里/百度哪个部门最值得加入
- 传入一个integer数组,取出最大、最小值
- 从数据库中取出某一天记录的最大和最小