В настоящее время у меня есть 3 таблицы, которые я использую для людей, чтобы сделать бронирование для определенных единиц оборудования.
Вот мои таблицы:
tblEquipment:
id name description
1 Camera Takes pictures
2 Projector Projects pictures
3 Laptop Portable Computer
tblEvents:
id start end first_name last_name email
1 2009-08-10 2009-08-11 John Doe jd@email.com
2 2009-08-15 2009-08-16 Jane Doe jd@email.com
tblEventData:
id eventID equipmentID
1 1 1
2 1 2
Прямо сейчас пользователь отправит запрос с указанным временем, затем он увидит все доступное оборудование.
Итак, используя приведенный выше пример, если пользователь ищет оборудование между 8 / 10-8 / 11, он увидит, что единственным доступным оборудованием является: equipmentID 3 (Laptop).
Как я могу создать свой запрос для возврата только доступного оборудования на основе запрошенного времени?
Это то, что я придумал до сих пор, но не могу заставить его работать:
SELECT tblequipment.id as name, tblEvents.start as start, tblEvents.end as end
FROM tblEquipment
INNER JOIN tblEventData on tblEventData.equipmentID = tblEquipment.id
INNER JOIN tblEvents on tbleventdata.eventID = tblEvents.id
WHERE NOT EXISTS(SELECT * FROM tblEvents WHERE $end >= start AND $start <= end)
Есть идеи? Спасибо!