시간 슬롯을 반환하는 mysql 쿼리가 있습니다. starttimeb, endtimeb 및 employeeb를 포함하는 timeslots라는 테이블이 있습니다. 예약 된 시작 시간 및 종료 시간 필드는 일정이라는 다른 테이블에서 가져옵니다. 문제는 타임 슬롯 테이블에 정의 된 약속 만 할당 할 수 있다는 것입니다.시작 시간과 종료 시간 및 실행 시간이 포함 된 mysql 시간 슬롯 쿼리
예를 들어 슬롯 8시에서 10 시까 지, 10시에서 12시, 12시에서 14시, 14시에서 16시 사이 및 16시에서 18시 사이 일정표에서 시작 시간이 08:00이고 종료 시간이 18:00 인 예약 된 항목이 하나 있으면 사용할 수 있습니다. 영업 시간은 8 시부 터 18 시까 지로 정의되어 있으므로 그 시간 동안 2 시간의 시간 블록 만 사용할 수 있으며 타임 슬롯 테이블에 제공된 2 시간 이상의 시간 간격으로 약속을 예약 할 수 있습니다. 예를 들어 if 오전 8 시부 터 12 시까 지 예약되었습니다. 12 시부 터 14 시까 지, 14 시부 터 16 시까 지, 16 시부 터 18 시까 지 이용 가능합니다. 또는 오전 9 시부 터 11 시까 지 12 시부 터 14 시까 지 예약 한 경우, 14 시부 터 16시 사이 및 16 시부 터 18시 사이를 이용할 수 있습니다.
는mysql_query("SELECT *
FROM timeslots
LEFT OUTER JOIN
(SELECT
starttime
, endtime
, custno
, id
FROM schedule
WHERE schedule.date = '2012-12-14'
) AS a
ON a.starttime >= timeslots.starttimeb
AND a.endtime <= timeslots.endtimeb
AND a.custno = timeslots.custnob");
위의 질의는 이런 일을 반환 ... 내 응용 프로그램에이 STARTTIME이 경우는 null 슬롯을 사용할 수 있는지 설정되어 있습니다.
starttimeb endtimeb custnob starttime endtime custno id 08:00:00 10:00:00 Michael W Sloan 08:00:00 10:00:00 Michael W Sloan 15670 10:00:00 12:00:00 Michael W Sloan NULL NULL NULL NULL 12:00:00 14:00:00 Michael W Sloan NULL NULL NULL NULL 14:00:00 16:00:00 Michael W Sloan 14:00:00 16:00:00 Michael W Sloan 15673 16:00:00 18:00:00 Michael W Sloan NULL NULL NULL NULL 08:00:00 10:00:00 James T Reesor 08:00:00 10:00:00 James T Reesor 15664 10:00:00 12:00:00 James T Reesor NULL NULL NULL NULL 12:00:00 14:00:00 James T Reesor NULL NULL NULL NULL 14:00:00 16:00:00 James T Reesor NULL NULL NULL NULL 16:00:00 18:00:00 James T Reesor 16:00:00 18:00:00 James T Reesor 15674 08:00:00 10:00:00 Carlton L. Pierce NULL NULL NULL NULL 10:00:00 12:00:00 Carlton L. Pierce NULL NULL NULL NULL 12:00:00 14:00:00 Carlton L. Pierce 12:00:00 14:00:00 Carlton L. Pierce 15671 14:00:00 16:00:00 Carlton L. Pierce NULL NULL NULL NULL 16:00:00 18:00:00 Carlton L. Pierce NULL NULL NULL NULL 08:00:00 10:00:00 Frankie D Aldridge NULL NULL NULL NULL 10:00:00 12:00:00 Frankie D Aldridge NULL NULL NULL NULL 12:00:00 14:00:00 Frankie D Aldridge NULL NULL NULL NULL 14:00:00 16:00:00 Frankie D Aldridge NULL NULL NULL NULL 16:00:00 18:00:00 Frankie D Aldridge NULL NULL NULL NULL 08:00:00 12:00:00 Michael W Sloan 08:00:00 10:00:00 Michael W Sloan 15670
내 길에 나를 잡은 위대한. 나는 a.starttime <= timeslots.starttimeb AND a.endtime> = timeslots.endtimeb –
을 사용했습니다. 어려운 질문이었습니다. 도움에 감사드립니다! –