我有一个带有两个日期/时间字段的(MySQL)表:start
和end
(每个类型datetime
)。我需要一个查询,该查询将start
的最低值和end
的最高值分配给某个用户和一个定义的日期。我终于suceeded用下面的查询:即使Mysql:在一行中获得另一个字段的最高值和最低值
SELECT job.id, job.user_id, job.start, last.end
FROM job
JOIN job AS last
ON job.user_id = last.user_id
AND DATE(job.start) = DATE(last.start)
AND last.end = (SELECT max(last2.end)
FROM job AS last2
WHERE last2.user_id = last.user_id
AND DATE(last2.end) = DATE(last.end))
WHERE job.user_id = 1
AND DATE(job.start) = '2012-05-28'
ORDER BY job.start ASC
LIMIT 0,1
它的工作原理,它没有“感觉”的权利。有没有更简单的方法来做到这一点? 任何帮助和提示是/非常感谢。谢谢!
示例数据:
user_id start end
1 2012-05-28 07:13:00 2011-04-26 07:45:00
1 2012-05-28 08:15:00 2011-04-26 08:50:00
1 2012-05-28 05:32:00 2011-04-26 05:51:00
1 2012-05-28 08:50:00 2011-04-26 09:50:00
1 2012-05-28 15:10:00 2011-04-26 15:40:00
1 2012-05-27 16:11:00 2011-04-26 16:46:00
2 2012-05-28 09:50:00 2011-04-26 10:35:00
'DATE(job.start)'??? “job.start”列是什么类型? – zerkms
datetime - 我更新了我的帖子 – Andreas
一些示例数据和预期的输出将帮助我们帮助您。 – Thomas