例子
表结构:
要求先根据type进行分组,再取每组中时间最新的一条。
sql语句:
SELECT m1.* FROM test01 m1 LEFT JOIN test01 m2 ON
(m1.Type = m2.Type and m1.DateOfOperation < m2.DateOfOperation) WHERE m2.ID is NULL
查询结果:
逻辑分析:
第一步:
SELECT * FROM test01 m1 LEFT JOIN test01 m2 ON m1.Type = m2.Type
得到:
第二步:筛选出m1时间小于m2时间的行。如果m2的id为空,则表示m2中没有比m1中该时间还要晚的时间,也就是说:m1中的此时间就是最晚的时间。
SELECT m1.* FROM test01 m1 LEFT JOIN test01 m2 ON (m1.Type = m2.Type and m1.DateOfOperation < m2.DateOfOperation) WHERE m2.ID IS NULL
小结:找了很长时间,才发现这个好用一点,记录一下。