従業員の労働時間をmysqlテーブルに保存しようとしています。表working_hour
には、通常の労働時間を保存しています。
id employee weekDay start end
1 1 2 10:00:00 18:00:00
2 1 3 10:00:00 18:00:00
3 1 4 10:00:00 14:00:00
4 1 5 10:00:00 12:00:00
5 1 6 10:00:00 18:00:00
6 1 7 00:00:00 00:00:00
7 1 1 00:00:00 00:00:00
2番目のテーブルには、「特別な」労働時間を保存します。そこでは、病気、休日、または特定の日のカスタマイズされた労働時間などを保存します。lテーブルは次のworking_hour_specia
ようになります。
id start end type
2 12013-03-12 00:00:00 2013-03-13 23:59:59 ill
そしてそれは私が試したことです:
SELECT
IFNULL(working_hour_special.start, working_hour.start) AS startTime,
IFNULL(working_hour_special.end, working_hour.end) AS endTime,
type
FROM
working_hour_special LEFT JOIN
working_hour ON working_hour.employee_id = working_hour_special.employee_id
WHERE
working_hour_special.start = DATE('2013-03-13') AND
employee_id = 1 AND
working_hour.weekDay = DAYOFWEEK('2013-03-13')
問題はWHERE-Clauseです。特定の従業員の特定の日の開始時刻と終了時刻が必要です。誰かにそれを行う方法のアイデアがありますか?