我有一个查询,执行时会给出这样的结果
speciaid | title | date
one | xxx | 2013-10-03 02:13:54
one | xxx | 2013-10-03 03:13:54
two | yyy | 2013-10-02 02:13:54
现在,如果我添加GROUP BYspecialid
,它会被分组,但我得到的日期是旧日期,而不是像这样的“日期”列的新日期
speciaid | title | date
one | xxx | 2013-10-03 02:13:54 // old date selected for entry one
two | yyy | 2013-10-02 02:13:54
我想要这样
speciaid | title | date
one | xxx | 2013-10-03 03:13:54 // new date for entry one needed
two | yyy | 2013-10-02 02:13:54
我尝试了很多分组依据 - 我得到了相同的结果。如果有人帮助进行 group by 查询语句,我将非常感激。
最佳答案
您正在寻找每组最佳的解决方案。
通常以这种方式解决(假设您的结果是表格,因为问题中缺乏信息)。
选项 1:
SELECT * FROM t JOIN (
SELECT title, max(`date`) `date` FROM t
GROUP BY title
) s ON t.title = s.title AND t.`date` = s.`date`
选项 2:
SELECT t1.* FROM t t1
LEFT JOIN t t2
ON t1.title = t2.title AND t1.`date` < t2.`date`
WHERE t2.`date` IS NULL
工作 fiddle :http://sqlfiddle.com/#!2/76f2d3/1
关于php - Mysql通过取错时间戳查询分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19173674/