我有一個帶有兩個日期/時間字段的(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