2 つの日付/時刻フィールドを持つ (MySQL) テーブルがあります:start
とend
(それぞれのタイプdatetime
)。特定のユーザーと定義された日付の最低値start
と最高値を提供するクエリが必要です。end
私は最終的に次のクエリで成功しました:
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